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

7
我正在使用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和代码中设置标准的“Dark Gray Color”是不同的?
  2. 如何在代码中使用通用RGB配置文件,以便我可以匹配与界面构建器的颜色值?

嘿@jesse,我刚回答了下面的问题。 - Dheeraj D
1个回答

14

你好 Jesse,请看下面的答案:

  • 为什么在IB(Interface Builder)和代码中设置标准的“深灰色”颜色不同?

在使用 Storyboard 和编程时,标准的 Dark Gray Color 会有所区别,因为 Storyboard 默认使用 sRGB IEC61966-2.1Generic RGBColor Profile,而当您在编程中进行设置时,它会采用 Device RGBColor Profile。因为 iOS 设备中的显示器颜色配置有所不同,包括 iPhones, iPads 等。

  • 如何在代码中使用通用的RGB配置,以便我可以匹配界面生成器中的颜色值?

当您在程序中设置 UIColor 时,您没有选择任何 Color Profile 的选择,因为它将采用 Device RGBColor Profile

如果您想要使它们保持相同,在您的故事板中选定颜色选择器,打开设置并将其更改为 Device RGB

请参阅下面的屏幕截图,了解如何使用 Storyboard 进行颜色配置设置

enter image description here

希望这可以帮到您...


1
完美的答案!! - Mohamed Haseel
感谢 @MohamedHaseel :) - Dheeraj D

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接