UIColor与IB颜色(颜色configuration文件问题)

我正在使用XCode 8.2.1。 我刚刚了解到颜色configuration文件,RGB值不是通用的。 但仍然无法理解如何使代码正确。 在界面生成器中,我为标签select了预定义的“深灰色”。 在通用RGBconfiguration文件中是(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)这些值与我在切换到Device RGBconfiguration文件时在IB中的值相对应。 所以看起来在代码中使用了RGB RGBconfiguration文件。

所以我的问题是:

  1. 为什么在IB和代码中设置标准的“深灰色”是不同的?
  2. 如何在代码中使用通用RGBconfiguration文件,所以我可以将颜色值与Interface Builder相匹配?

你好,杰西请看下面的答案:

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

由于Storyboard使用sRGB IEC61966-2.1Generic RGB Color Profile默认情况下,并且当您以编程方式设置,所以它需要Device RGB Color profile因为设备RGB iOS设备在那里iPhones, iPads具有不同的特点iPhones, iPads标准Dark Gray Color是不同的使用Storyboard和编程在他们的显示颜色configuration文件方面。

  • How to use Generic RGB profile in code, so I can match color values with Interface Builder?

以编程方式设置UIColor ,您无法select任何Color Profile因为它将采用Device RGB Color Profile

如果你想使它相同,所以在故事板中select你的颜色select器,打开设置,并将其更改为Device RGB

请参阅下面的使用故事板的颜色configuration文件设置屏幕截图

在这里输入图像说明

我希望它会帮助你….