2012-12-05 41 views
-1

可能重複:
Check if UIColor is dark or bright?確定顏色是淺色還是黑色?

有沒有簡單的方法來確定一個的UIColor太暗或太亮?我想在動態背景上添加標籤,如果背景爲黑色,則將其文本顏色更改爲白色,如果背景爲淺色,則將其改爲黑色。

+0

重複的問題。 [http://stackoverflow.com/questions/2509443/check-if-uicolor-is-dark-or-bright][1] [1]:HTTP://計算器。 com/questions/2509443/check-if-uicolor-is-dark-or-bright –

回答

5

我沒有測試過這一點,但它可能爲你工作...

-(BOOL) isLightColor:(UIColor*)clr { 
    CGFloat white = 0; 
    [clr getWhite:&white alpha:nil]; 
    return (white >= 0.5); 
} 
+1

上面的代碼只有在顏色爲灰度的情況下才有效,如果是RGB則返回白色的值爲0.請檢查下面的代碼效果更好: – Paulo

2

計算你的標籤和背景之間的色彩對比,並從那裏對你的顏色決定。通常,這將涉及獲取有問題的顏色的組件。

如果你谷歌「計算顏色對比度」沒有報價,你會發現一些鏈接。你可能找不到特定於iOS的任何東西,但是你應該能夠調整你找到的代碼,尤其是因爲它們通常涉及RGB的功能,這很簡單。

相關問題