0
我试图使用CGContextSetFillColorWithColor
和我从Parse数据库抓取的颜色变量对图像着色。CGContextSetFillColorWithColor不适用于颜色变量
改变影像这样的颜色正常工作:
[...]
UIImage *image = [UIImage imageNamed:@"menuButton.png"];
CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClipToMask(context, rect, image.CGImage);
CGContextSetFillColorWithColor(context, [[UIColor whiteColor] CGColor]);
[...]
这改变了menuButton.png白色没有问题。
但是当我尝试将其更改为十六进制颜色我从解析得到(使用十六进制颜色实用程序)是这样的:
self.bgColor = [post objectForKey:@"bgColor"]; //bgColor = "#ffffff"
[...]
CGContextSetFillColorWithColor(context,
[[UIColor colorWithHexString:self.bgColor] CGColor]);
图像不再出现。这是一个指针问题?谢谢你的帮助。
感谢西莫,不幸的是我得到的错误'传递空隙CGColorRef不兼容的类型的参数(又名struct CGColor *)'当我尝试。 – ahow 2013-03-06 15:49:42
你确定'-colorWithHexString'调用正在返回一个有效的UIColor对象吗? – 2013-03-06 15:51:58
啊,算出来,谢谢Seamus! – ahow 2013-03-06 16:06:00