2013-07-10 60 views
1

我正在使用UIButton的ios項目。我用[cardButton setTitle:card.contents forState:UIControlStateSelected|UIControlStateDisabled];但我不完全理解這個機制。我知道這是emun和bitmask的過程。任何人都可以向我解釋一點點嗎?謝謝。UIControl中的控制狀態如何工作?

enum { 
    UIControlStateNormal    = 0, 
    UIControlStateHighlighted   = 1 << 0, 
    UIControlStateDisabled    = 1 << 1, 
    UIControlStateSelected    = 1 << 2, 
    UIControlStateApplication   = 0x00FF0000, 
    UIControlStateReserved    = 0xFF000000 
}; 

回答

0

控件可以有more than one states at a time例如。選中並突出顯示可以共存,等等。

因此,您可以爲狀態組合指定標題和圖像。

例如,

UIButton * button; 
//initialization code 
NSString * title = @"Title"; 
[button setTitle:title forState:UIControlStateHighlighted | UIControlStateSelected]; 
title = [button titleForState:UIControlStateHighlighted | UIControlStateSelected]; 

的位掩碼使用,從而產生對每個值的每個組合的獨特價值和 - 使用逐或嘗試他們,你會得到它。它與能夠支付任何整數量的例如1美元,2美元,5美元,10美元等的鈔票不是非常不同的。 1美元和2美元的賬單可以用來支付3美元,4美元等等,所以你只需要一定數量的賬單。

+0

so,forState:UIControlStateHighlighted | UIControlStateSelected 表示設置「突出顯示」和「選定」的內容。而國家的獨特之處在於他們使用位掩碼的原因,對吧? – Steven