1> 實例化手勢識別ui
- (id)initWithTarget:(id)target action:(SEL)action;spa
2> 設置手勢識別屬性ip
3> 將手勢識別附加到指定的視圖ci
addGestureRecognizerget
4> 編寫監聽方法it
0> UIGestureRecognizer 全部手勢識別的父類,不容許直接使用,能夠用來自定義手勢io
最經常使用的屬性:class
view: 發生手勢的視圖方法
state: 手勢當前的狀態,主要用於連續手勢,對於離散手勢通常不使用im
1> UITapGestureRecognizer 點按手勢(離散手勢,其餘手勢都是連續手勢)
屬性:
numberOfTapsRequired 點擊次數,單擊雙擊
numberOfTouchesRequired 手指根數
2> UILongPressGestureRecognizer 長按手勢
屬性不建議修改
3> UIPanGestureRecognizer 拖動手勢
屬性:不經常使用
方法:
// 在視圖中拖動的距離
- (CGPoint)translationInView:(UIView *)view;
// 在視圖中拖動的速度,一般可用於模擬慣性,須要一些物理方面的計算
- (CGPoint)velocityInView:(UIView *)view;
4> UIPinchGestureRecognizer 捏合手勢
屬性:
scale 比例
velocity 捏合速度,不經常使用
5> UIRotationGestureRecognizer 旋轉手勢
屬性
rotation 旋轉角度
velocity 旋轉速度,不經常使用
6> UISwipeGestureRecognizer 輕掃手勢,一般添加到根視圖上
屬性
numberOfTouchesRequired 參與輕掃手勢的手指根數
direction 輕掃的方向
提示:
1) 若是要檢測幾個方向的輕掃,須要分別實例化幾個輕掃手勢
2) 輕掃手勢雖然是連續手勢,可是不須要去處理UIGestureRecognizerStateChanged狀態;由於是在手指離開屏幕後,該手勢才被識別的。