按鈕的幾種狀態的區別

幾種狀態:code

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

這幾種狀態的時序變化順序:orm

1.什麼都沒幹的時候:Normal

2.當你的手指按下去,還沒放的時候:Highlighted

3.當手指放開的時候:若是這個 UIControl 有 Selected 狀態的話,就會變成: Selected

再重複上述過程一次,就會從 Selected->Highlighted-> Normal

可是普通的 UIButton 這個 UIControl 的 subclass,是沒有 Selected 狀態的,它就只有 Normal 和 Highlighted,只會在這兩個狀態間切換。(正常狀況下,若是你設置了 disable 的話,還會變到 Disabled)io

很是天然的時序:Normal -> Highlighted -> Selected -> Normal。class

也能夠理解爲:di

  • 手指按到控件,UIControl更新ControlState到Highlighted
  • 手指離開控件,通常UIControl更新ControlState到Selected
  • Highlighted -> Selected以後的狀態取決於具體的UIControl子類,其實連UITableViewCell也有這三種狀態,Cell仍是UIView的子類,這種特殊的狀態默認就不會更新回Normal了~
  •  
相關文章
相關標籤/搜索