当我在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
的适当语法是什么? 最佳答案
根据评论中提供的反馈,我找到了错误的根源:
在该方法的后面,我在UIColor的实例上调用了.ciColor。失败是因为UIColor实例不是首先由CIColor创建的。
似乎满足以下条件:
UIColor => CIColor:必须由CIColor(color:UIColor instance)构造函数初始化
CIColor => UIColor => CIColor:.ciColor属性可用。
关于swift - 将UIColor(扩展范围sRGB)转换为CIColor,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42287093/