先貼一個NSObject類的結(jié)構(gòu)圖幅垮,明確一下繼承關(guān)系:
注意一下拱层,UIResponder這個類虹菲,它是UIApplication和UIView的超類憋肖,UIResponder類定義了對象相應(yīng)和控制事件的接口,它的實例通常被稱為應(yīng)答對象胰苏。
這個類中主要的觸摸方法法是:touchesBegan:withEvent:, touchesMoved:withEvent:, touchesEnded:withEvent: , 和 touchesCancelled:withEvent:
其實例方法包括:
becomeFirstResponder :通告接受者對象稱為當前的第一響應(yīng)者對象(- (BOOL)becomeFirstResponder )
主要的時間控制方法:
touchesBegan:withEvent:通知調(diào)用者當有一根或者多根手指觸摸到了視圖或者窗口
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event: 通知接收者當系統(tǒng)發(fā)出取消事件的時候(比如低內(nèi)存消耗的警告框)
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event :當一個觸摸事件結(jié)束時發(fā)出的UITouch實例對象
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event :告訴接收者一個或者多個手指在視圖或者窗口上觸發(fā)移動事件硕蛹。默認不允許多點觸摸。
如果要接收多點觸摸事件你必須發(fā)setMultipleTouchEnabled: 這個消息給接收的視圖實例對象并傳遞YES參數(shù)。
繼承自UIControl類的子類都可以通過addTarget添加事件妓美,如果不是繼承自它的控件也要與用戶交互怎么辦僵腺,可以設(shè)置它的userInteractionEnabled屬性為yes
給這個控件添加tap或其他手勢與用戶交互,所有繼承自UIResponder這個類的控件都可以添加
另外注意一下UIBarButtonItem和UITapBarItem壶栋,不要把這兩個控件搞混辰如,UIBarButtonItem是導航欄上的按鈕,UITapBarItem是底部工具欄的按鈕
UIControl的常用事件:
1.UIControlEventTouchDown
單點觸摸按下事件:用戶點觸屏幕贵试,或者又有新手指落下的時候琉兜。
2.UIControlEventTouchDownRepeat
多點觸摸按下事件,點觸計數(shù)大于1:用戶按下第二毙玻、三豌蟋、或第四根手指的時候。
3.UIControlEventTouchDragInside
當一次觸摸在控件窗口內(nèi)拖動時桑滩。
4.UIControlEventTouchDragOutside
當一次觸摸在控件窗口之外拖動時梧疲。
5.UIControlEventTouchDragEnter
當一次觸摸從控件窗口之外拖動到內(nèi)部時。
6.UIControlEventTouchDragExit
當一次觸摸從控件窗口內(nèi)部拖動到外部時运准。
7.UIControlEventTouchUpInside
所有在控件之內(nèi)觸摸抬起事件幌氮。
8.UIControlEventTouchUpOutside
所有在控件之外觸摸抬起事件(點觸必須開始與控件內(nèi)部才會發(fā)送通知)。
9.UIControlEventTouchCancel
所有觸摸取消事件胁澳,即一次觸摸因為放上了太多手指而被取消该互,或者被上鎖或者電話呼叫打斷。
10.UIControlEventTouchChanged
當控件的值發(fā)生改變時韭畸,發(fā)送通知宇智。用于滑塊、分段控件胰丁、以及其他取值的控件随橘。你可以配置滑塊控件何時發(fā)送通知,在滑塊被放下時發(fā)送锦庸,或者在被拖動時發(fā)送机蔗。
11.UIControlEventEditingDidBegin
當文本控件中開始編輯時發(fā)送通知。
12.UIControlEventEditingChanged
當文本控件中的文本被改變時發(fā)送通知酸员。
13.UIControlEventEditingDidEnd
當文本控件中編輯結(jié)束時發(fā)送通知。
14.UIControlEventEditingDidOnExit
當文本控件內(nèi)通過按下回車鍵(或等價行為)結(jié)束編輯時幔嗦,發(fā)送通知。
15.UIControlEventAlltouchEvents
通知所有觸摸事件沥潭。
16.UIControlEventAllEditingEvents
通知所有關(guān)于文本編輯的事件。
17.UIControlEventAllEvents
通知所有事件