1. 問(wèn)題描述:
項(xiàng)目中,一個(gè)頁(yè)面的NavigationBar是有動(dòng)畫效果的嘶居,Title的顏色會(huì)不斷變化命贴。測(cè)試的時(shí)候發(fā)現(xiàn),在IOS7.0系統(tǒng)上本來(lái)應(yīng)該是白色的Title變成了黑色。調(diào)試發(fā)現(xiàn)問(wèn)題出在一個(gè)系統(tǒng)API上- getRed:green:blue:alpha:
胸蛛。在7.0系統(tǒng)上對(duì)[UIColor whiteColor]
調(diào)用這個(gè)API,獲取R樱报、G葬项、B值是錯(cuò)誤的,均為接近0的小數(shù)迹蛤,正確的結(jié)果是1民珍。
2. 原因:
+ (UIColor *)blackColor; // 0.0 white
+ (UIColor *)darkGrayColor; // 0.333 white
+ (UIColor *)lightGrayColor; // 0.667 white
+ (UIColor *)whiteColor; // 1.0 white
+ (UIColor *)grayColor; // 0.5 white
原因是系統(tǒng)對(duì)部分顏色的存儲(chǔ)進(jìn)行了優(yōu)化,用兩個(gè)字節(jié)存儲(chǔ)這些顏色盗飒,按RGB的存儲(chǔ)方式去取值就會(huì)得到錯(cuò)誤的值嚷量。7.0以上的系統(tǒng),這個(gè)API對(duì)這些特殊存儲(chǔ)的顏色進(jìn)行了兼容處理逆趣,返回值是正確的蝶溶。
3. 簡(jiǎn)單解決方法:
如果要用這個(gè)API- getRed:green:blue:alpha:
,用[UIColor colorWithRGB:0xffffff]
代替[UIColor whiteColor]
宣渗。