CGGradientCreateWithColors devuelve un puntero nulo

El problema se describe en el subj .; Aquí está mi código a continuación:

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); NSArray *colors = [NSArray arrayWithObjects:[UIColor networkingColor], [UIColor blueColor], nil]; CGGradientRef gradient = CGGradientCreateWithColors(NULL, (CFArrayRef)colors, NULL); 

No funciona En realidad, la última llamada retorna nil ;

Tampoco funciona cuando sustituyo el primer argumento NULL por una reference CGColorSpace , por ejemplo, Device RGB.

¿Qué sucede, alguien tiene una idea?

Necesita acceder al molde UIColor de UIColor :

 NSArray *colors = [NSArray arrayWithObjects:(id)[UIColor networkingColor].CGColor, (id)[UIColor blueColor].CGColor, nil]; 

Además, se recomienda especificar un espacio de color:

 CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB(); CGGradientRef gradient = CGGradientCreateWithColors(space, (CFArrayRef)colors, NULL); 

CGGradientCreateWithColors() espera una matriz de CGColorRef s, no UIColor s. AFAIK UIColor no está puenteado con CGColorRef .

 CGFloat locations[2]; locations[0] = 0.0; locations[1] = 1.0; CGGradientRef gradient = CGGradientCreateWithColors(space, (CFArrayRef)colors, locations); 
    Intereting Posts