最近在改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中背景色一致