@xifenglang-33250
2019-07-16T11:24:08.000000Z
字数 623
阅读 1281
开发笔记
在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
目录下