CAGradientLayer no funciona

He creado un nuevo proyecto. QuartzCore.framework e importe <QuartzCore/QuartzCore.h> en ViewController.m .

Y aquí está el código.

 - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"view height %f", self.view.frame.size.height); // returns 667 on iPhone 6 NSLog(@"view width %f", self.view.frame.size.width); // returns 375 on iPhone 6 NSLog(@"layers count %lu", self.view.layer.sublayers.count); // returns 2 // Gradient UIColor *colorOne = [UIColor blueColor]; UIColor *colorTwo = [UIColor greenColor]; NSArray *colorArray = @[colorOne, colorTwo]; NSNumber *locationOne = [NSNumber numberWithFloat:0.0]; NSNumber *locationTwo = [NSNumber numberWithFloat:1.0]; NSArray *locationArray = @[locationOne, locationTwo]; CAGradientLayer *gradientLayer = [CAGradientLayer layer]; gradientLayer.frame = self.view.frame; gradientLayer.colors = colorArray; gradientLayer.locations = locationArray; [self.view.layer insertSublayer:gradientLayer atIndex:0]; //[self.view.layer insertSublayer:gradientLayer above:[self.view.layer.sublayers firstObject]]; // didn't work either NSLog(@"layers count %lu", self.view.layer.sublayers.count); //returns 3 } 

Intenté configurar el color de background de la vista en clearColor , llamándolo en viewDidAppear , pero ninguno funcionó. Realmente no sé lo que me falta. Gracias en cualquier ayuda.

Su matriz de colors debe ser NSArray *colorArray = @[(id)colorOne.CGColor, (id)colorTwo.CGColor]; , debido a que la matriz de colors toma CGColorRef s, en lugar de UIColor s, es bastante irritante – vea los documentos CGGradientLayer