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

时间:2015-09-30 09:39:38

标签: ios objective-c uiview

我试图在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];
}

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

1 个答案:

答案 0 :(得分:12)

感谢Larme的评论,我发现了我的错误。

而不是

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

这是

gradient.colors = @[(id)[UIColor greenColor].CGColor, (id)[UIColor redColor].CGColor];

因为gradient.colors需要NSArray CGColorRef。为了创建(id),还需要NSArray强制转换。