UIColor与IB颜色(颜色配置文件问题)

时间:2017-01-04 04:10:39

标签: ios colors interface-builder xcode8 uicolor

我正在使用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中设置颜色的标签,我看到实际上(104,104,104)的值对应于当切换到设备RGB配置文件时IB中的值。 所以似乎在代码中使用了设备RGB配置文件。

所以我的问题是:

  1. 为什么标准的“深灰色”在IB和代码中设置时会有所不同?
  2. 如何在代码中使用Generic RGB配置文件,因此我可以使用Interface Builder匹配颜色值?

1 个答案:

答案 0 :(得分:10)

你好Jesse请看下面的答案:

  • Why standard "Dark Gray Color" is different when set in IB and in code?

使用Dark Gray Color并以编程方式标准Storyboard不同,因为默认情况下Storyboard使用sRGB IEC61966-2.1Generic 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

我希望它能帮助你......