UIView上的绘图渐变不适用于iOS 9

Wed*_*rda 7 objective-c uiview ios

我试图在iOS 9的视图控制器的背景视图上绘制渐变但是,我不知道为什么,不工作

这是我的方法,从viewDidLoad调用

- (void)drawGradient
{
  CAGradientLayer *gradient = [CAGradientLayer layer];
  gradient.frame = self.view.bounds;

  gradient.colors = @[[UIColor greenColor], [UIColor redColor]];
  gradient.locations = @[@0.0, @1.0];

  [self.view.layer insertSublayer:gradient atIndex:0];
}
Run Code Online (Sandbox Code Playgroud)

但没有任何反应,也没有出现渐变.我做错了什么?

Wed*_*rda 14

感谢Larme的评论,我弄清楚了我的错误.

代替

gradient.colors = @[[UIColor greenColor], [UIColor redColor]];
Run Code Online (Sandbox Code Playgroud)

这是正确的

gradient.colors = @[(id)[UIColor greenColor].CGColor, (id)[UIColor redColor].CGColor];
Run Code Online (Sandbox Code Playgroud)

由于gradient.colors预计一NSArrayCGColorRef.将(id)还需要以创建演员NSArray.