@xifenglang-33250
2019-07-16T03:24:08.000000Z
字数 623
阅读 1598
开发笔记
在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。

不同的ColorSpace效果如下

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

对于项目中的xib或者storayBoard文件,可以单独修改也可以使用sublime全局搜索修改
将colorSpace="calibratedRGB"/>替换成colorSpace="deviceRGB"/>。选择sRGB colorSpace时xml文件里面对应的是colorSpace="deviceRGB"/>。
替换后可能会有部分文件编译出错的情况出现,搜索并colorSpace="custom" customcolorSpace="deviceRGB"/>替换成colorSpace="deviceRGB"/>。

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