我正在使用 XCode 8.2.1。
我刚刚了解了颜色配置文件,并且 RGB 值不是通用的。
但仍然无法理解如何在代码中使其正确。
在 Interface Builder 中,我为标签选择了预定义的“深灰色”。通用 RGB 配置文件中的值为 (85, 85, 85)。另外,在代码中,我将另一个标签颜色设置为 [UIColor darkGrayColor]。我原以为它们有相同的颜色,但它们是不同的。
我用的方法
- (BOOL)getRed:(nullable CGFloat *)red green:(nullable CGFloat *)green blue:(nullable CGFloat *)blue alpha:(nullable CGFloat *)alpha
获取 RGB 值。对于在 IB 中设置颜色的标签,当我切换到设备 RGB 配置文件时,我看到值实际上是 (104,104,104),它们对应于 IB 中的值。
所以看起来在代码中使用了Device RGB配置文件。
所以我的问题是:
- 为什么在IB和代码中设置的标准“深灰色”不同?
- 如何在代码中使用通用 RGB 配置文件,以便我可以使用 Interface Builder 匹配颜色值?
你好,杰西,请参阅下面的答案:
Why standard "Dark Gray Color" is different when set in IB and in code?
标准Dark Gray Color
使用不同Storyboard
并以编程方式因为Storyboard
uses sRGB IEC61966-2.1
or Generic RGB
Color Profile
默认情况下,当您以编程方式设置它时,需要Device RGB
Color profile
因为设备 RGB iOS 设备就在那里iPhones, iPads
它们在显示颜色配置文件方面具有不同的特征。
How to use Generic RGB profile in code, so I can match color values with Interface Builder?
当你设置UIColor
以编程方式,因此您无法选择任何Color Profile
因为这需要Device RGB
Color Profile
.
如果你想让它相同,那么在你的故事板中选择你的颜色选择器,打开设置并将其更改为Device RGB
请参阅下面的屏幕截图,了解使用 Storyboard 设置颜色配置文件:
![enter image description here](https://i.stack.imgur.com/dvkt2.png)
我希望它能帮助你......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)