IOS 10宽色:我需要担心吗?
iOS 10的发行说明中有一个标题为“ 宽色”的部分。
令我感到困惑的是这一行: 如果您的应用程序依赖UIKit来钳制组件值(无论您是创建颜色还是询问其组件值的颜色),您需要在链接iOS时更改应用程序的行为10。
钳制元件值意味着什么? 在objective-c或swift中看起来是什么样的,我如何更新它以符合iOS 10中的变化?
这条线在上下文中更有意义:
在iOS 10中,
UIColor
类使用扩展的sRGB颜色空间,其初始化程序不再将原始组件值限制在0.0
和1.0
之间。 如果您的应用依赖UIKit来钳制组件值(无论您是创建颜色还是询问其组件值的颜色),您需要在链接iOS 10时更改应用程序的行为。
“将原始组件值钳制到介于0.0
和1.0
之间”意味着当您将旧API传递给0.0
以下的值时,它将使用0.0
,而当您将旧API传递给1.0
以上的值时,它将使用1.0
。
UIKit不再这样做了。 在新的扩展sRGB颜色空间中,像(1.0, 0.0, 0.0)
1.0,0.0,0.0)这样的RGB三元组意味着“像sRGB一样可以获得红色”,但现在也可以创建像(1.1, 0.0, 0.0)
那样更红的颜色。
如果在iOS 9或更早版本中您将0.0
– 1.0
范围之外的值传递给UIColor
,它现在将接受这些值,因此您现在将获得与之前不同的颜色。 如果您之前只传过该范围内的值,那么您就没有任何变化。
正如评论中所指出的, WWDC16会议上有关Wide Color的更多信息。