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

jes*_*sse 7 colors interface-builder uicolor ios xcode8

我正在使用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
Run Code Online (Sandbox Code Playgroud)

获取RGB值.对于在IB中设置颜色的标签,我看到实际上(104,104,104)的值对应于当切换到设备RGB配置文件时IB中的值.所以似乎在代码中使用了设备RGB配置文件.

所以我的问题是:

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

Dhe*_*j D 13

您好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

请参见下面的屏幕截图使用故事板色彩配置文件设置:

在此输入图像描述

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