CGGradientCreateWithColors 返回空指针
该问题在主题中进行了描述; 下面是我的代码:
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
NSArray *colors = [NSArray arrayWithObjects:[UIColor redColor], [UIColor blueColor], nil];
CGGradientRef gradient = CGGradientCreateWithColors(NULL, (CFArrayRef)colors, NULL);
它不工作。实际上,最后一次调用返回nil
;
当我用 CGColorSpace
引用(例如设备 RGB)替换第一个参数 NULL
时,它都不起作用。
怎么了,有人有想法吗?
The problem is described in the subj.;
Here's my code below:
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
NSArray *colors = [NSArray arrayWithObjects:[UIColor redColor], [UIColor blueColor], nil];
CGGradientRef gradient = CGGradientCreateWithColors(NULL, (CFArrayRef)colors, NULL);
It's not working. Actually, the last call returns nil
;
Neither it works when I replace the first argument NULL
with a CGColorSpace
reference, e.g. Device RGB.
What's wrong, does anyone have an idea?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要从
UIColor
访问CGColor
转换:此外,建议指定颜色空间:
You need to access the
CGColor
cast fromUIColor
:Also, specifying a color space is recommended:
CGGradientCreateWithColors()
需要一个CGColorRef
数组,而不是UIColor
数组。据我所知,UIColor
并不是与CGColorRef
进行免费桥接。CGGradientCreateWithColors()
expects an array ofCGColorRef
s, notUIColor
s. AFAIKUIColor
is not toll-free bridged withCGColorRef
.