当我在iOS 10.2.1上运行以下Swift 3.0.1行时:
let color = CIColor(color: UIColor(hue: 0.72, saturation: 1.00, brightness: 0.78, alpha: 1));
我收到以下错误:
'*** -CIColor未定义为UIColor UIExtendedGrayColorSpace 1 1;需要先转换颜色空间。'
根据文件:
颜色对象。由该对象表示的颜色信息在RGB颜色空间中。在针对iOS 10或更高版本链接的应用程序中,颜色在扩展范围的sRGB颜色空间中指定。在早期版本的iOS上,颜色在设备RGB颜色空间中指定。
来源:https://developer.apple.com/reference/uikit/uicolor/1621931-init
现在CIColor
位于设备RGB颜色空间且UIColor
位于扩展sRGB颜色空间中,从CIColor
获取UIColor
的适当语法是什么? ?
答案 0 :(得分:3)
根据评论中提供的反馈,我找到了错误的来源:
稍后在方法中,我在UIColor的一个实例上调用了.ciColor。这会失败,因为UIColor实例最初不是由CIColor创建的。
似乎满足以下条件:
答案 1 :(得分:2)
正如Jake Chasan所建议的那样,必须使用UIColor实例初始化CIColor实例。所以这个快速的代码对我有用:
func colorToRGB(uiColor: UIColor) -> CIColor
{
return CIColor(color: uiColor)
}