-(void)change:(UIButton *)button{
if (button.isSelected) {
[button setBackgroundImage:[UIImage imageNamed:@"check"] forState:UIControlStateNormal];
}else{
[button setBackgroundImage:[UIImage imageNamed:@"checked"] forState:UIControlStateNormal];
}
button.selected = !button.selected;
}
UIButton的幾種觸發方式:
1、UIControlEventTouchDown
指鼠標左鍵按下(注:只是“按下”)的動作
2、UIControlEventTouchDownRepeat
指鼠標左鍵連續多次重複按下(注:只是“按下”)的動作,比如,鼠標連續雙擊、三擊、……、多次連擊。
說明:多次重複按下時,事件序列是這樣的:
UIControlEventTouchDown ->
(UIControlEventTouchUpInside) ->
UIControlEventTouchDown ->
UIControlEventTouchDownRepeat ->
(UIControlEventTouchUpInside) ->
UIControlEventTouchDown ->
UIControlEventTouchDownRepeat ->
(UIControlEventTouchUpInside) ->
......
除了第一次按下外,後面每次摁下都是一個UIControlEventTouchDown事件,然後緊跟一個UIControlEventTouchDownRepeat事件。
3、UIControlEventTouchDragInside
指按下鼠標,然後在控件邊界範圍內拖動。
4、UIControlEventTouchDragOutside
與UIControlEventTouchDragInside不同的是,拖動時,鼠標位於控件邊界範圍之外。
但首先得有個UIControlEventTouchDown事件,然後接一個 UIControlEventTouchDragInside事件,再接一個UIControlEventTouchDragExit事件,這時,鼠標已 經位於控件外了,繼續拖動就是UIControlEventTouchDragOutside事件了。
具體操作是:在控件裏面按下鼠標,然後拖動到控件之外。
5、UIControlEventTouchDragEnter
指拖動動作中,從控件邊界外到內時產生的事件。
6、UIControlEventTouchDragExit
指拖動動作中,從控件邊界內到外時產生的事件。
7、UIControlEventTouchUpInside
指鼠標在控件範圍內擡起,前提先得按下,即UIControlEventTouchDown或UIControlEventTouchDownRepeat事件。
8、UIControlEventTouchUpOutside
指鼠標在控件邊界範圍外擡起,前提先得按下,然後拖動到控件外,即
UIControlEventTouchDown ->
UIControlEventTouchDragInside(n 個) ->
UIControlEventTouchDragExit ->
UIControlEventTouchDragOutside(n 個)
時間序列,再然後就是擡起鼠標,產生UIControlEventTouchUpOutside事件。