问题描述
我正在尝试在 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]; }
但是没有任何反应,也没有出现渐变.我做错了什么?
推荐答案
感谢Larme的评论,我发现了自己的错误.
代替
gradient.colors = @[[UIColor greenColor], [UIColor redColor]];
这是正确的
gradient.colors = @[(id)[UIColor greenColor].CGColor, (id)[UIColor redColor].CGColor];
因为 gradient.colors 需要 CGColorRef 的 NSArray.为了创建 NSArray,还需要 (id) 演员表.