我正在尝试将渐变视图添加到iOS应用的背景中。
使用广告联盟UIColor+uiGradients
我在viewDidLoad
下的背景中添加了GradientLayer:
- (void)viewDidLoad {
[super viewDidLoad];
UIColor *startColor = [UIColor uig_emeraldWaterStartColor];
UIColor *endColor = [UIColor uig_emeraldWaterEndColor];
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.view.bounds;
gradient.startPoint = CGPointMake(0, 0);
gradient.endPoint = CGPointMake(self.view.frame.size.width, 0);
gradient.colors = @[(id)[startColor CGColor], (id)[endColor CGColor], nil];
[self.view.layer insertSublayer:gradient atIndex:0];
}
错误发生在gradients.colors = @[(id)[startColor CGColor], (id)[endColor CGColor], nil];
行
错误:
'void *'类型的collection元素不是Objective-C对象。
感谢您的帮助。
答案 0 :(得分:4)
从数组末尾删除nil。您不能将nil放在Objective-C数组中,也不能在@[]
文字中使用nil。所以:
gradient.colors = @[(id)[startColor CGColor], (id)[endColor CGColor]];