【问题标题】:UIColor vs IB color (color profile issue)UIColor vs IB 颜色(颜色配置文件问题)
【发布时间】:2017-05-18 06:53:00
【问题描述】:

我正在使用 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. 如何在代码中使用通用 RGB 配置文件,以便我可以将颜色值与 Interface Builder 匹配?

【问题讨论】:

  • 嘿@jesse 我刚刚在下面回答。

标签: ios colors interface-builder xcode8 uicolor


【解决方案1】:

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

  • 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

请参见下面使用情节提要设置颜色配置文件的屏幕截图

希望对你有帮助....

【讨论】:

  • 完美答案!!
  • 感谢@MohamedHaseel :)
猜你喜欢
  • 2015-09-19
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多