嗨我想试试CGColor,我一直在做很多Quartz2d的事情。在过去我用[UIColor xColor] .CGColor搞砸了它...但是当我指定颜色时,这个新的编译器会崩溃,即[UIColor redColor] .CGColor很好,但如果我自己煮[UIColor color withRed:x Green:y etc] .CGColor它崩溃了。我不认为它是一个保留问题,因为[UIColor alloc] initWithRed:]。CGColor给了我同样的东西。我在猜UIColor - > CGColor桥有点捏造,硬编码仅用于预设颜色,而不是转换。所以我正在寻找一种RGB类型的CGColor方案,这样我就可以从一组值中重建一种颜色。我真的不在乎它的0-1或1-255等,只需要一个系统我可以让我的头脑,如果有人可以扔我骨头我真的很感激欢呼
答案 0 :(得分:5)
我希望真正发生的事情是你没有保留最终的颜色,而且你让UIColor得到了自动释放。内置颜色(例如-redColor
等)可能是永久存在的全局变量,但是使用-colorWithRed:green:blue:alpha:
创建的颜色是按需创建的并且是自动释放的。如果你将CGColor拉出来,CGColor的生命周期与UIColor的生命周期有关,所以如果你要抓住CGColor超过当前堆栈,你需要CGColorRetain()
它(然后当你完成时CGColorRelease()
。
答案 1 :(得分:1)
您可以使用CGColorRef CGColorCreateGenericRGB(CGFloat red,CGFloat green,CGFloat blue,CGFloat alpha)创建它;