使用CAGradientLayer时,为什么应用程序崩溃

时间:2012-03-29 21:32:08

标签: objective-c ios cocoa-touch quartz-graphics

我已经开始使用CAGradientLayer但我的应用程序崩溃了

CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = headerView.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[UIColor redColor],(id)[UIColor greenColor], nil];

[headerView.layer addSublayer:gradient];

EXEC_BAD_ACESS

我的实施中是否有错误?

2 个答案:

答案 0 :(得分:4)

这是一个小错误 - 您需要使用CGColorRef指针数组:

gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor redColor] CGColor], (id)[[UIColor greenColor] CGColor], nil];

答案 1 :(得分:2)

CAGradientLayer使用CGColorRef值。使用UIColor的CGColor属性。例如:

[UIColor redColor].CGColor