- 為了完成手勢識別,必須借助于手勢識別器----UIGestureRecognizer
- 利用UIGestureRecognizer,能輕松識別用戶在某個view上面做的一些常見手勢
- UIGestureRecognizer是一個抽象類,定義了所有手勢的基本行為,使用它的子類才能處理具體的手勢
UITapGestureRecognizer //敲擊
UIPinchGestureRecognizer //捏合,用于縮放
UIPanGestureRecognizer //拖拽
UISwipeGestureRecognizer //輕掃
UIRotationGestureRecognizer //旋轉(zhuǎn)
UILongPressGestureRecognizer //長按
- UITapGestureRecognizer
- 每一個手勢識別器的用法都差不多,比如UITapGestureRecognizer的使用步驟如下
//創(chuàng)建手勢識別器對象
UITapGestureRecognizer *tap = [[UITapGestureRecognizeralloc]init];
//設(shè)置手勢識別器對象的具體屬性
tap.numberOfTapsRequired = 2; //連續(xù)敲擊2次
tap.numberOfTouchesRequired = 2; //需要2根手指一起敲擊
//添加手勢識別器到對應(yīng)的view上
[self.iconViewaddGestureRecognizer:tap];
//監(jiān)聽手勢的觸發(fā)
[tapaddTarget:selfaction:@selector(tapIconView:)];
- 手勢識別的狀態(tài)
typedef NS_ENUM(NSInteger, UIGestureRecognizerState) {
UIGestureRecognizerStatePossible, //沒有觸摸事件發(fā)生,所有手勢識別的默認(rèn)狀態(tài)
UIGestureRecognizerStateBegan, //一個手勢已經(jīng)開始但尚未改變或者完成時
UIGestureRecognizerStateChanged, //手勢狀態(tài)改變
UIGestureRecognizerStateEnded, //手勢完成
UIGestureRecognizerStateCancelled, //手勢取消,恢復(fù)至Possible狀態(tài)
UIGestureRecognizerStateFailed, //手勢失敗,恢復(fù)至Possible狀態(tài)
//識別到手勢識別
UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded
};
-
手勢識別狀態(tài)變化示意圖
