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

时间:2012-04-06 05:47:51

标签: iphone ios colors ios-simulator color-scheme

概述

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

编辑(已添加以下部分)

以下各项不同:

  1. 故事板颜色(xib文件)
  2. 模拟器颜色
  3. 设备颜色
  4. 我想我应该看看它在设备上的外观。

    问题

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

9 个答案:

答案 0 :(得分:19)

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

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

我遵循的步骤:

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

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

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

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

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

答案 1 :(得分:9)

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

需要执行两项任务:

  1. 使用sRGB色彩空间获取源颜色。
  2. 使用sRGB颜色空间在Interface Builder中设置颜色。
  3. 任务1

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

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

    Preferences -> General -> Color Profiles -> sRGB
    

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

    enter image description here 任务2

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

    enter image description here

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

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

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

答案 2 :(得分:8)

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

  

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

答案 3 :(得分:4)

关于色彩空间

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

如果您在一个色彩空间中选择一种颜色,并在不同的色彩空间中生成它,尽管复制了相同的RGBA值,它看起来会有所不同。

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

有趣的事实:我上面提到的UIColor构造函数在Xcode8之后在sRGB空间中创建了颜色。之前,该函数用于在Generic RGB空间内创建它们。这就是它可能引起混淆的原因。

这是一个扩展主题的资源:https://medium.com/@volbap/working-efficiently-with-colors-in-xcode-bc4c58b16f9a

答案 4 :(得分:1)

iPhone确实使用色彩空间管理,因此如果您想要更“科学”的解决方案,您可以创建自己的色彩空间,例如使用CGColorSpaceCreateCalibratedRGB。它虽然在Core图形级别上。

答案 5 :(得分:1)

将RGB值转换为sRGB的更好方法是在mac中使用“Digital Color Meter”工具,只需选中“在sRGB中显示”

Digital Color Meter

然后在代码中使用sRGB值而不是RGB native values

enter image description here

使用此工具,您可以找到通用RGB颜色并将其直接设置为xcode作为RGB值

答案 6 :(得分:1)

在您的应用中处理图片文件时的一个更简单的解决方案。首先,将Xcode中的色彩空间设置为sRGB IEC61966-2.1并应用您的颜色。然后,在将任何图片导入应用程序之前,请使用Mac上的ColorSync Utility将图像与sRGB IEC61966-2.1配置文件相匹配。 完美地为我和我的背景工作现在完全匹配我导入的图像。希望这有助于某人。

答案 7 :(得分:0)

我遇到了类似的问题,尤其是项目中的绿色问题。我的问题是我的一些资产是在illustrator中创建的,颜色设置为CMYK而不是RGB。我不确定这是不是你的问题,但对于那些在将来偶然发现这个问题的人来说可能会有所帮助。我更改了插画师"文档颜色模式"到RGB,一切都很好。

答案 8 :(得分:0)

您可以将此webPage用于Xcode中的不同颜色组合。 例如,通用和设备颜色有点不同。