Interface Builder颜色选择器中的颜色错误

24

我有一个UIImageView,其中包含一张棕色的图像,该图像并不总是到达顶部。UIImage视图位于白色UIView内。

因此,由于图像的顶部是线性棕色,我决定将其下面的UIView变为相同的棕色,用户将看不到图像的结束位置。 到目前为止,一切都很好。

我的问题是,当我选取图像顶部的颜色时,颜色选择器选择的颜色比实际上要更暗:(

在我点击颜色选择器之前: 进入图像描述

在我点击颜色选择器之后: 进入图像描述

这是为什么?

6个回答

32

想进一步说明已接受的答案,并附上一些截图。

如果要在Photoshop和Xcode之间精确地匹配RGB值(不需要在颜色空间之间转换),则需要以通用RGB格式保存您的图像,并使用通用RGB颜色空间输入任何滴管值。

  • 从Photoshop中选择“保存为Web和设备”,取消“转换为sRGB”框中的选中状态。

enter image description here

  • 在Xcode中,单击颜色选择器中的颜色空间弹出菜单,选择“通用RGB”,然后输入Photoshop中的红色、绿色和蓝色值,而不是HEX值,因为这会以某种原因恢复到sRGB颜色空间(还要注意不要切换到HEX字段,否则也会将颜色空间更改为sRGB)。

enter image description here

更多信息在此处,包括如何匹配屏幕截图。


14

我已经找到了一个解决方案/解释(尽管我仍然很困惑),在这个答案中:https://dev59.com/EWs05IYBdhLWcg3wCNlG#9203647

基本上,我为了解决我的问题,从RGB的“类型”选择器(颜色选择器下面的小正方形)中选择了Apple RGB选项,并手动输入了R、G和B值,而不是使用选择器。

奇怪的是...


8
谢谢,但我用的是通用RGB而不是苹果RGB。这样可以得到更准确的颜色。您可以通过将真实颜色的示例图像放入图像视图中进行比较来测试这一点。 - ninjaneer

2
因为组件编号没有规定颜色,我们还需要知道xCode使用的颜色空间。 编码或解码的颜色空间可在RGB滑块左侧的下拉菜单中找到。
默认情况下,xCode选择“通用RGB”,这就是UIColor使用RGB规格颜色的方式。 如果我们使用放大镜,则会更改为“设备RGB”空间,该空间基于您当前的屏幕。 因此,“sRGB”或“Adobe RGB”将更接近您希望获取的颜色,如果您使用放大镜选择颜色。

1

我认为通用的RGB也可以使用。 诀窍是您需要手动输入R G B的数量, 在下拉列表中更改RGB模式后。

奇怪...(也太奇怪了)


我相当确定在绝望中我已经尝试过那个方法,但它没有起作用。等我有机会时,我会再次尝试以进行检查。谢谢你的建议 ;) - Nicu Surdu
一样的情况。你应该再给他们发送一封电子邮件。告诉他们还有另外两个人遇到了同样的问题。 - Anthony Flores

0

更新 10.10.4

我也遇到了这个问题,我向苹果报告了此问题,并且在 10.10.4 上似乎已经解决了(它与颜色选择器本身有关,而不是与 Xcode/IB 有关)。

还有其他人可以确认吗?


1
在使用10.10.4上的颜色选择器时,我仍然遇到相同的问题。将视图的背景颜色设置为HEX#456456。运行模拟器。打开颜色选择器,单击具有#456456的视图,您会得到不同的值。 - Dave

0

这是一个老问题,但对我来说很重要,需要添加一些信息。 多年来,唯一准确可靠的方法是不使用PS的颜色选择器,而是使用macOS内置的“数字颜色计”。

enter image description here

它与每个 macOS 安装捆绑在一起,并使用“通用 RGB”发出的 RGB 值始终可以在 Xcode Storyboards 中正确地再现颜色。

enter image description here


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