2013-02-28 62 views
1

我已經建立了一套自定義顏色在我的應用程序使用,如石灰我掙扎比較,我已經做

mylimeColor = [UIColor colorWithRed:0.502 green:1.000 blue:0.000 alpha:1.000]; 

設置的東西這個顏色的作品罰款的UIColor,但我當我想要改變某些事物時,我的應用程序稍後會陷入困境,這取決於視圖中具有哪些自定義顏色。 我使用沒有問題如下:

if (bgColor == [UIColor redColor]) { 
// do something 
} 

但只要我開始用我自己的顏色打破。

if (bgColor == myredColor) { 
// do something 
} 

我可以檢查在NSLog中的背景顏色,它看起來完全如我所料。

有沒有另一種方法讓我找出什麼東西(UIView,UITextFeild等)的背景是什麼?我在網上看過,但似乎只是找到幫助設置我的自定義顏色,這對我來說不是問題。

我的下一步將是設置一個整數到每個顏色的具體數字,然後檢查,但似乎比較顏色本身將是一個更好的方式做到這一點。

感謝您的幫助!

+0

我覺得你的代碼塊在錯誤的地方。在第一種情況下[UI​​Color redColor]和第二種代碼myredColor應該在那裏根據你的問題。 – 2013-02-28 03:18:54

+0

你說得對,我會編輯它,讓人們在將來找到這個時更加清楚。 OMG。 – 2013-02-28 03:51:10

回答

7

UIColor是一類。使用isEqual:來比較顏色。

+0

OMG。我不敢相信我沒有注意到這一點!我認爲這只是表明現在是我休息一下並停止盯着這段代碼的時候了。謝謝!! – 2013-02-28 03:52:56

+0

順便說一句:以這種方式比較顏色時要小心,因爲它們必須在相同的顏色模型中才能被視爲相等。例如,'#ffffff'不等於'[UIColor whiteColor]' – leviathan 2014-03-18 12:21:34