iOS的 - 在Xcode的模拟器颜色上设备

iOS的 - 在Xcode的模拟器颜色上设备

问题描述:

概述iOS的 - 在Xcode的模拟器颜色上设备

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

EDIT(以下部分已被添加)

以下是所有不同:

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

我想我应该去看看它是怎么样的ks在设备上。

问题

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

屏幕截图在这里肯定会有所帮助。我们在谈论多少不同? – jtbandes 2012-04-06 05:49:41

+1

该设备使用大猩猩玻璃......并且您的显示器很可能不会。这将会微妙地影响人眼由于光波失真而感知颜色的方式。随时关注设备上的外观。除非其中一个设备无法正常工作,否则设备之间看起来不太可能会有所不同。 – borrrden 2012-04-06 05:51:22

+0

谢谢borrden,是的,我喜欢去与设备颜色,但我不知道如何匹配颜色 – user1046037 2012-04-06 05:57:29

幸得@jtbandes的建议发送截图而导致的解决方案

我只是回答了这个问题完整性。

步骤我跟着:

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

我RGB偏移量(不盲从)

根据我的经验,我增加了以下的RGB值来获得我想要的颜色,它仅仅是粗略的,对我的工作:

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

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

保持在不同角度的手机也给了不同的色调,保持它的水平确实给

+2

你所做的实际上是所谓的色彩管理:http://en.wikipedia.org/wiki/Color_management – MrTJ 2012-04-06 08:33:48

+0

谢谢@MrTJ,我的理解是,iPhone不使用颜色配置文件,因此我遵循上述步骤,如果有是一个更好的方法,我会很高兴知道。谢谢 – user1046037 2012-04-06 13:21:07

+0

伟大的职位。我同时感谢你的失望,并且失望他们所需要的。肉眼看,虽然优惠是完美的。最后,我的default.png正常转换到应用程序的菜单背景。 – Ternary 2014-11-18 21:28:29

iPhone所使用的色彩空间的管理,所以如果你想要的颜色一个更“科学”的解决方案,您可以创建自己的色彩空间,例如CGColorSpaceCreateCalibratedRGB。尽管它在Core图形级别上。

+0

感谢@MrTJ赦免我的无知,我正在使用图像(纹理),它是否也与图像一起工作? – user1046037 2012-04-06 15:30:01

+1

是的,您可以为任何渲染上下文(包括屏幕)设置色彩空间。然后,您的色彩空间将应用于您绘制到该渲染上下文的任何内容。请参阅https://developer.apple.com/library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_color/dq_color.html(特别是最后一章)和http://developer.apple.com/library/mac/ #qa/qa1396/_index.html – MrTJ 2012-04-10 08:45:16

+0

尽管API确实存在,但实际上并没有任何效果。使用CGColorSpaceCreateCalibratedRGB()创建'CGColor',然后将其绘制到DeviceRGB上下文中会得到完全相同的颜色值。 (这可能是OS X的暂缓,或者为了将来打样而加入) – 2015-10-05 04:11:11

当前(截至2014年3月17日)CGColorSpace参考包括以下文本,它表示sRGB是iOS的本机设备色彩空间。

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

+1

请提供引用引用的链接以使您的答案更好。 – Szymon 2014-03-17 23:50:23

+0

@Szymon https://developer.apple.com/library/ios/Documentation/GraphicsImaging/Reference/CGColorSpace/index.html – GuramK 2014-09-27 19:45:14

我有一个类似的问题,特别是在我的项目中的绿色。我的问题结果是,我有一些资产是在Illustrator中创建的,颜色设置为CMYK而不是RGB。我不确定这是否是你的问题,但对未来绊倒这个问题的人可能会有所帮助。我将插图画家“文档颜色模式”更改为RGB,一切正常。

更好的方法来转换RGB值的sRGB使用“数字色彩照度计”工具在Mac,只需选中“显示中的sRGB”

Digital Color Meter

然后使用sRGB值在你的代码的RGB native values

enter image description here

而不是使用这个工具,你可以找到通用的RGB色彩,并直接将其设置到了Xcode作为RGB值

正如其他人指出的,这是一个问题色空间

两项任务需要执行:

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

任务1

您可以使用苹果的Digital Color Meter应用品尝所需的颜色,使用Display in sRGB选项,但输出非常有限。

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

Preferences -> General -> Color Profiles -> sRGB 

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

enter image description here 任务2

在Interface Builder中,打开颜色窗口中,选择第二个窗格中,选择 “RGB滑块”。然后点击齿轮图标选择sRGB颜色配置文件。

enter image description here

完成后,粘贴到Hex Color #

你做你的颜色值!你的颜色现在应该匹配。

我不以任何方式隶属于SipIt。但是我已经使用了几年,而且非常方便。我会推荐给任何设计师。

+0

也使用Sip,在Sip和Xcode之间匹配颜色空间有助于获得相同颜色的十六进制字段Xcode颜色选择器。为+1 :)。但Xcode和Sketch中的颜色仍然不匹配:( – 2017-09-07 14:41:50

您可以使用此webPage为Xcode中的不同颜色的甲板。例如,通用和设备颜色有点不同。

它是关于色空间

确保从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

还有一个与你的应用程序的图像文件时,简单的解决方案。首先,将Xcode中的颜色空间设置为sRGB IEC61966-2.1并应用您的颜色。然后,在将任何图片导入到应用程序之前,使用Mac上的ColorSync Utility将图像与sRGB IEC61966-2.1配置文件相匹配。 完美适合我,我的背景现在完全符合我导入的图像。希望这可以帮助某人。