手勢類型
UITapGestureRecognizer(敲擊)
UIPinchGestureRecognizer(捏合,用于縮放)
UIPanGestureRecognizer(拖拽)
UISwipeGestureRecognizer(輕掃)
UIRotationGestureRecognizer(旋轉)
UILongPressGestureRecognizer(長按)
監聽手勢的方式
創建手勢:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];
-
設置手勢相應的屬性:
// 連續敲擊2次 tap.numberOfTapsRequired = 2; // 需要2根手指一起敲擊 tap.numberOfTouchesRequired = 2;
將手勢添加到view上:
[self.iconView addGestureRecognizer:tap];
監聽手勢的觸發:
[tap addTarget:self action:@selector(tapIconView:)]
手勢的狀態:
// 沒有觸摸事件發生,所有手勢識別的默認狀態
UIGestureRecognizerStatePossible,
// 一個手勢已經開始但尚未改變或者完成時
UIGestureRecognizerStateBegan,
// 手勢狀態改變
UIGestureRecognizerStateChanged,
// 手勢完成
UIGestureRecognizerStateEnded,
// 手勢取消,恢復至Possible狀態
UIGestureRecognizerStateCancelled,
// 手勢失敗,恢復至Possible狀態
UIGestureRecognizerStateFailed,
// 識別到手勢識別
UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded
手勢的代理 < UIGestureRecognizerDelegate >
- 當想給一個view同時添加幾個手勢的時候,在手勢的這個代理方法返回yes,表示允許同時識別多個手勢
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;
觸發手勢后的動作
- 要想根據手勢的內容,做出相應的動作,就把手勢傳過來
- 要想根據手勢的偏移量設置view的位置的時候,有時需要對手勢的一些變量進行復位,它們可能是根據初始點來計算的。(了解就行,到用時,具體情況具體對待)