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

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

开发笔记


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

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