我试图在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];
}
但没有任何反应,渐变也没有出现。 我做错了什么?
答案 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
强制转换。