手势类型
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的位置的时候,有时需要对手势的一些变量进行复位,它们可能是根据初始点来计算的。(了解就行,到用时,具体情况具体对待)