问题在主题中描述; 这是我的代码:
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
NSArray *colors = [NSArray arrayWithObjects:[UIColor redColor], [UIColor blueColor], nil];
CGGradientRef gradient = CGGradientCreateWithColors(NULL, (CFArrayRef)colors, NULL);
无法正常工作。实际上,最后一次通话会返回nil
;
当我用NULL
引用替换第一个参数CGColorSpace
时,它都不起作用,例如设备RGB。
出了什么问题,有没有人有想法?
答案 0 :(得分:17)
您需要访问来自CGColor
的{{1}}演员:
UIColor
另外,建议指定色彩空间:
NSArray *colors = [NSArray arrayWithObjects:(id)[UIColor redColor].CGColor, (id)[UIColor blueColor].CGColor, nil];
答案 1 :(得分:3)
CGGradientCreateWithColors()
需要一个CGColorRef
s的数组,而不是UIColor
s。 AFAIK UIColor
与CGColorRef
没有免费联网。
答案 2 :(得分:2)
CGFloat locations[2];
locations[0] = 0.0;
locations[1] = 1.0;
CGGradientRef gradient = CGGradientCreateWithColors(space, (CFArrayRef)colors, locations);