剛開始學習UI界面的時候,自己用stroyboard拖按鈕到控制器里面,會發現方法默認都是UIControlEventTouchUpInside,然后我翻了一下蘋果的官方文檔,發現UIControlEvents事件有十幾種,那么其他的那些事件都是干嘛用的呢?######
首先,UIControlEvents有這個幾種:
UIControlEventTouchDown? ? ? ? ? = 1 <<? 0,? ? ? // on all touch downs
UIControlEventTouchDownRepeat? ? = 1 <<? 1,? ? ? // on multiple touchdowns (tap count > 1)
UIControlEventTouchDragInside? ? = 1 <<? 2,
UIControlEventTouchDragOutside? ? = 1 <<? 3,
UIControlEventTouchDragEnter? ? ? = 1 <<? 4,
UIControlEventTouchDragExit? ? ? = 1 <<? 5,
UIControlEventTouchUpInside? ? ? = 1 <<? 6,
UIControlEventTouchUpOutside? ? ? = 1 <<? 7,
UIControlEventTouchCancel? ? ? ? = 1 <<? 8,
---------------------------------------------------------------------------------------------------UIControlEventValueChanged? ? ? ? = 1 << 12,? ? // sliders, etc.
UIControlEventEditingDidBegin? ? = 1 << 16,? ? // UITextField
UIControlEventEditingChanged? ? ? = 1 << 17,
UIControlEventEditingDidEnd? ? ? = 1 << 18,
UIControlEventEditingDidEndOnExit = 1 << 19,? ? // 'return key' ending editing
UIControlEventAllTouchEvents? ? ? = 0x00000FFF,? // for touch events
UIControlEventAllEditingEvents? ? = 0x000F0000,? // for UITextField
UIControlEventApplicationReserved = 0x0F000000,? // range available for application use
UIControlEventSystemReserved? ? ? = 0xF0000000,? // range reserved for internal framework use
UIControlEventAllEvents? ? ? ? ? = 0xFFFFFFFF
UIControlEventTouchDown
單點觸摸按下事件:用戶點觸屏幕,或者又有新手指落下的時候。
UIControlEventTouchDownRepeat
多點觸摸按下事件,點觸計數大于1:用戶按下第二、三、或第四根手指的時候。
UIControlEventTouchDragInside
當一次觸摸在控件窗口內拖動時。
UIControlEventTouchDragOutside
當一次觸摸在控件窗口之外拖動時。
UIControlEventTouchDragEnter
當一次觸摸從控件窗口之外拖動到內部時。
UIControlEventTouchDragExit
當一次觸摸從控件窗口內部拖動到外部時。
UIControlEventTouchUpInside
所有在控件之內觸摸抬起事件。
UIControlEventTouchUpOutside
所有在控件之外觸摸抬起事件(點觸必須開始與控件內部才會發送通知)。
UIControlEventTouchCancel
所有觸摸取消事件,即一次觸摸因為放上了太多手指而被取消,或者被上鎖或者電話呼叫打斷。
UIControlEventTouchChanged
當控件的值發生改變時,發送通知。用于滑塊、分段控件、以及其他取值的控件。你可以配置滑塊控件何時發送通知,在滑塊被放下時發送,或者在被拖動時發送。
UIControlEventEditingDidBegin
當文本控件中開始編輯時發送通知。
UIControlEventEditingChanged
當文本控件中的文本被改變時發送通知。
UIControlEventEditingDidEnd
當文本控件中編輯結束時發送通知。
UIControlEventEditingDidOnExit
當文本控件內通過按下回車鍵(或等價行為)結束編輯時,發送通知。
UIControlEventAlltouchEvents
通知所有觸摸事件。
UIControlEventAllEditingEvents
通知所有關于文本編輯的事件。
UIControlEventAllEvents
通知所有事件。
把這些都掌握,以后就可以輕松應對各種場景了~