[关闭]
@xifenglang-33250 2019-07-16T03:24:08.000000Z 字数 623 阅读 2067

Xib颜色和代码颜色显示不一致

开发笔记


在Xcode10.2上发现Xib和StoryBoard设置的UIColor和代码UIColor.init(red:green:blue:alpha:)设置的颜色显示效果有偏差。是由于使用了不同的ColorSpace导致。常见的有Generic RGB和Device RGB和sRGB,Xcode10.2默认使用Generic RGB,而UIColor.init(red:green:blue:alpha:)使用sRGB。所以要将Generic RGB替换成sRGB,Device RGB和sRGB显示效果一致,不用替换,但建议使用标准的sRGB。

20190716112026.jpg-107.8kB

不同的ColorSpace效果如下

屏幕快照 2019-07-14 上午11.09.26.png-37.7kB

在Xib上设置颜色时需要修改设置

屏幕快照 2019-07-14 上午11.08.48.png-1057.5kB

对于项目中的xib或者storayBoard文件,可以单独修改也可以使用sublime全局搜索修改
将colorSpace="calibratedRGB"/>替换成colorSpace="deviceRGB"/>。选择sRGB colorSpace时xml文件里面对应的是colorSpace="deviceRGB"/>。

替换后可能会有部分文件编译出错的情况出现,搜索并colorSpace="custom" customcolorSpace="deviceRGB"/>替换成colorSpace="deviceRGB"/>。

屏幕快照 2019-07-14 上午11.00.24.png-172.9kB

或者创建通用的Colors.xcassets,在~/Library/Colors目录下

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注