最近在改Bug的时候,才注意到iOS 中的颜色竟然也大有文章,特来记录一下。
先说一下问题,因为某界面中有用xib实现的一个view,而这个view 只在UIColletionView的layout 里通过nib 注册使用,为这个xib设置了背景色,然后Cell也设置了背景色(用RGBA的API代码设置的颜色),这两个颜色值一样,但是实际显示出来颜色就是不一样。如下图所示
xib中的RGBA颜色
从上图可以看出,这里的RGB颜色有三种,Adobe RGB、Device RGB、Generic RGB,Xcode 中默认勾选的是Generic RGB。
API中的颜色
我们一般常常会使用+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha;
来自定义颜色。
但是你有没有想过这个Api里使用的是哪种RGB类型呢?
所以,如果我们想要使得xib里的RGB颜色与代码设置的RGB颜色一样,那么我们就需要使用同一种RGB颜色类型。即在xib也选择Device RGB来设置颜色就可以了。
关于iOS中的颜色以前也记录了另一个问题,也是使用RGB颜色解决的,地址是:iOS下使状态栏颜色与H5中背景色一致