iOS - Xcode模拟器上的颜色与设备上的颜色不同

use*_*037 39 iphone color-scheme colors ios ios-simulator

概观

我的iPhone应用程序在模拟器(iMac)中的背景颜色看起来与设备上的颜色(iPhone 3GS)不同.

编辑(以下部分已添加)

以下各项不同:

  1. 故事板颜色(xib文件)
  2. 模拟器颜色
  3. 设备颜色

我想我应该了解它在设备上的外观.

问题

  1. 这是其他开发人员面临的常见问题吗?有没有办法匹配颜色(系统程序)?
  2. 不同版本的iPhone(3gs/4/4s)或所有颜色的颜色会有所不同吗?
  3. 我错过了什么,我应该使用任何特定的颜色配置文件吗?
  4. 有什么像经验法则,RGB值会有一定的百分比变化吗?
  5. 在iPhone 4和4S中,颜色是否与模拟器匹配?(我没有iPhone4和4S,所以我不确定.)

use*_*037 19

感谢@jtbandes建议发送导致解决方案的屏幕截图

我只是回答完整性的问题.

我遵循的步骤:

  1. 在故事板中截取图像的屏幕截图
  2. 在设备中截取图像的截图(使用邮件/照片流回到你的mac)
  3. 使用颜色选择器(mac OS调色板的一部分)在两个屏幕截图上选择相同的位置
  4. 记下在步骤3中选择的斑点的RGB值(在mac OS调色板上可用)
  5. 比较两个RGB值并查看差异
  6. 添加RGB偏移以匹配颜色.

我的RGB偏移(不要盲目跟踪)

根据我的经验,我添加了以下RGB值来获得我想要的颜色,它只是粗略的,并为我工作:

  • 红+12
  • 绿+19
  • 蓝色+16

不同角度(最好保持水平)

以不同的角度握住手机也会产生不同的色调,保持水平确实给出了颜色

  • 你所做的实际上叫做色彩管理:http://en.wikipedia.org/wiki/Color_management (2认同)

Wom*_*ble 9

正如其他人所指出的,这是色彩空间的问题.

需要执行两项任务:

  1. 使用sRGB颜色空间获取源颜色.
  2. 使用sRGB颜色空间在Interface Builder中设置颜色.

任务1

您可以使用Apple的Digital Color Meter应用程序使用该Display in sRGB选项对所需颜色进行采样,但输出非常有限.

另一个选择是使用类似的应用程序SipIt(在App Store上免费提供,最后我检查过).通过执行以下操作,确保您在正确的色彩空间中采样:

Preferences -> General -> Color Profiles -> sRGB
Run Code Online (Sandbox Code Playgroud)

您还可以设置输出格式(例如十六进制字符串).

在此输入图像描述 任务2

在Interface Builder中,打开Color窗口,选择第二个窗格,选择"RGB Sliders".然后单击齿轮图标以选择sRGB颜色配置文件.

在此输入图像描述

完成后,将颜色值粘贴到Hex Color #字段中

你完成了!你的颜色现在应该匹配.

我不以任何方式与SipIt有任何关系.但我已经使用它几年了,它非常方便.我推荐给任何设计师.


小智 8

当前(截至2014年3月17日)CGColorSpace参考包括以下文本,其中sRGB是iOS的本机设备颜色空间.

色彩空间和iOS:iOS不支持ColorSync,因此所有资源都应在本机设备色彩空间中提供:sRGB.


Pab*_* V. 5

关于色彩空间

确保从sRGB颜色空间中选择颜色,并通过sRGB IEC61966-2.1从下拉菜单中进行选择,在Interface Builder上复制其RGBA值。

如果您在一个颜色空间中选择一种颜色,然后在另一种颜色空间中生成该颜色,则尽管复制了相同的RGBA值,它的外观也会有所不同。

此外,请记住,当您通过代码生成颜色时,使用UIColor(red:green:blue:alpha:)sRGB默认情况下会在颜色空间上生成颜色。这就是为什么它是如此方便地使用这一个(而不是Adobe RGBP3或任何其他)。此外,sRGB是目前行业中使用最广泛的标准。

有趣的事实:UIColor上面提到的那个构造函数sRGB自Xcode8起就在空间中创建颜色。以前,该函数用来在Generic RGB空间中创建它们。这就是为什么它也可能引起混乱的原因。

这是有关该主题的扩展资源:https : //medium.com/@volbap/working-ficiently-with-colors-in-xcode-bc4c58b16f9a