1、public static var touchDown: UIControlEvents { get } // on all touch downs
touchDown:按下,指單點(diǎn)觸摸按下事件
2、 public static var touchDownRepeat: UIControlEvents { get } // on multiple touchdowns (tap count > 1)
多次連續(xù)觸摸按下事件,指雙擊,三擊,四擊或多擊;多次連續(xù)觸摸按下事件的執(zhí)行順序:
touchDown=>allTouchEvents=>allEvents=>touchUpInside=>allTouchEvents=>allEvents=>primaryActionTriggered=>allEvents=>
touchDown=>allTouchEvents=>allEvents=>touchDownRepeat=>allTouchEvents=>allEvents=>touchUpInside=>allTouchEvents=>allEvents=>primaryActionTriggered=>allEvents=>
touchDown=>allTouchEvents=>allEvents=>touchDownRepeat=>allTouchEvents=>allEvents=>touchUpInside=>allTouchEvents=>allEvents=>primaryActionTriggered=>allEvents=>
…
除了第一次按下外,后面每一次按下觸發(fā)touchDown之后會緊接著觸發(fā)touchDownRepeat事件
3、 public static var touchDragInside: UIControlEvents { get }
指鼠標(biāo)在控件邊緣內(nèi)拖動,拖動時會連續(xù)不斷觸發(fā)該事件
4、public static var touchDragOutside: UIControlEvents { get }
指鼠標(biāo)從控件邊緣內(nèi)拖動到邊緣外后,會連續(xù)不斷觸發(fā),其觸發(fā)順序
touchDown…=>touchDragInside(多次)…=>touchDragExit…=>touchDragOutside(多次)…
(為了看的更清楚,…把=>allTouchEvents=>allEvents等事件忽略掉了。因?yàn)閼校韵旅娌辉僮鼋忉?
5、 public static var touchDragEnter: UIControlEvents { get }
指從控件外拖拽到控件內(nèi)會觸發(fā)一次的事件,若想觸發(fā)該事件,必先從控件內(nèi)拖拽到控件外,然后再拖拽到控件內(nèi)才會觸發(fā);若僅僅從控件外按下拖拽到控件內(nèi)并不會觸發(fā)該控件的任何事件。其觸發(fā)順序
touchDown…=>touchDragInside(多次)…=>touchDragExit…=>touchDragOutside(多次)…=>touchDragEnter...=>touchDragInside(多次)
6、public static var touchDragExit: UIControlEvents { get }
從控件內(nèi)拖拽到控件外會觸發(fā)一次的事件,其觸發(fā)順序
touchDown…=>touchDragInside(多次)…=>touchDragExit…=>touchDragOutside(多次)…
7、public static var touchUpInside: UIControlEvents { get }
指手指從控件范圍內(nèi)抬起會觸發(fā)一次的事件,該事件之前必會先觸發(fā)
8、public static var touchUpOutside: UIControlEvents { get }
指手指從控件范圍外抬起會觸發(fā)一次的事件,觸發(fā)該事件必先從控件內(nèi)按下,然后拖拽至控件外抬起,才會觸發(fā).其觸發(fā)順序
touchDown…=>touchDragInside(多次)…=>touchDragExit…=>touchDragOutside(多次)…=>touchUpOutside
9、public static var touchCancel: UIControlEvents { get }
所有觸摸取消事件,即一次觸摸因?yàn)榉派狭颂嗍种付蝗∠?或者被鎖屏或者電話呼叫打斷.
10、 public static var valueChanged: UIControlEvents { get } // sliders, etc.
當(dāng)控件的值發(fā)生改變時會觸發(fā)的事件。用于滑塊、分段控件、以及其他取值的控件。你可以配置滑塊控件何時發(fā)送通知,在滑塊被放下時發(fā)送,或者在被拖動時觸發(fā)
11、@available(iOS 9.0, *)
public static var primaryActionTriggered: UIControlEvents { get } // semantic action: for buttons, etc.
還未搞清楚該事件的準(zhǔn)確觸發(fā)條件,但每次從控件內(nèi)抬起,都會觸發(fā)該事件.
12-15是可編輯控件(繼承自UIControl)的編輯事件.
12、public static var editingDidBegin: UIControlEvents { get } // UITextField
已經(jīng)開始編輯時會觸發(fā)一次的事件
13、public static var editingChanged: UIControlEvents { get }
編輯內(nèi)容改變后會觸發(fā)
14、 public static var editingDidEnd: UIControlEvents { get }
結(jié)束編輯后時觸發(fā)
15、 public static var editingDidEndOnExit: UIControlEvents { get } // 'return key' ending editing
當(dāng)文本控件內(nèi)通過按下回車鍵(或等價行為)結(jié)束編輯時,發(fā)送通知。
16、 public static var allTouchEvents: UIControlEvents { get } // for touch events
所有的觸摸事件都會觸發(fā)該事件
17、public static var allEditingEvents: UIControlEvents { get } // for UITextField
所有關(guān)于文本編輯的事件會觸發(fā)該事件
18、public static var allEvents: UIControlEvents { get }
所有事件都會觸發(fā)