事件的處理機制和手勢的操作
iOS中的事件分發##
事件的分類###
- Touch Events(多點觸摸事件)
視圖的exclusiveTouch設置為YES防止多點觸碰都有事件發生。
- touchesBegan:withEvent:方法:一個或多個手指置于視圖或窗口上
- touchesMoved:withEvent:方法:一個或多個手指在移動
- touchesEnded:withEvent:方法:一個或多個手指離開視圖或窗口
- touchesCancelled:withEvent:方法:如果其他系統事件(如內存不足警告)使得觸摸被取消
-
Motion Events(運動事件)
- motionBegan:withEvent:方法:運動事件開始
- motionEnded:withEvent:方法:運動事件結束
- motionCancelled:withEvent:方法:運動事件取消
-
Remote-Control Events(遠程控制事件)
- remoteControlReceivedWithEvent:方法:接收到遠程控制事件
事件的分發機制###
問題:當有多個重疊的UIView時,誰是第一響應者
- 默認的點擊順序是按照UIView中subviews的逆順序
- 如果UIView的同級別subviews中有重疊的部分,則優先檢查頂部的subview,如果頂部的subview返回nil,再檢查底部的subview。
iOS中的手勢操作##
??手勢操作是通過使用者的手指觸控,計算手指移動軌跡、坐標,然后對程序做相應處理的過程。手勢操作需要添加手勢識別器,所有手勢識別器公共的父類是UIGestureRecognizer。
各種手勢的使用###
點擊手勢:UITapGestureRecognizer
長按手勢:UILongPressGestureRecognizer
旋轉手勢:UIRotationGestureRecognizer
捏合手勢:UIPinchGestureRecognizer
滑動手勢:UISwipeGestureRecognizer
拖動手勢:UIPanGestureRecognizer
這里寫圖片描述