iOS 10的release notes标题为广泛颜色。
令我困惑的是这一行: 如果您的应用依赖于UIKit来钳制组件值(无论您是创建颜色还是询问其组件值的颜色),您需要在链接iOS 10时更改应用的行为。 < / p>
钳制元件值是什么意思?在objective-c或swift中看起来是什么样的?如何更新它以符合iOS 10中的更改?
答案 0 :(得分:6)
这条线在上下文中更有意义:
在iOS 10中,
UIColor
类使用扩展的sRGB颜色空间,其初始值设定项不再将原始组件值限制在0.0
和1.0
之间。如果您的应用程序依赖于UIKit来钳制组件值(无论您是创建颜色还是要求颜色显示其组件值),您需要在链接iOS 10时更改应用程序的行为。
&#34;将原始组件值钳制到0.0
和1.0
&#34; 之间意味着当您向旧API传递的值低于{ {1}},它会使用0.0
代替,当您将旧API传递给0.0
以上的值时,它会使用1.0
。
UIKit不再这样做了。在新的扩展sRGB颜色空间中,像1.0
这样的RGB三元组意味着&#34;红色和sRGB一样可以得到&#34;但它现在也可以创建像{{1}这样的颜色那些甚至更红。
如果您在iOS 9或更早版本中将(1.0, 0.0, 0.0)
- (1.1, 0.0, 0.0)
范围之外的值传递给0.0
,那么它现在会接受这些值,因此您需要这样做现在得到的颜色与以前不同。如果您以前只传过该范围内的值,那么您就没有变化。
正如评论中所述,WWDC16 session on Wide Color中有更多信息。