一、使用手势识别的四个步骤
1> 实例化手势识别
- (id)initWithTarget:(id)target action:(SEL)action;
2> 设置手势识别属性
3> 将手势识别附加到指定的视图
addGestureRecognizer
4> 编写监听方法
二、手势说明
0> UIGestureRecognizer 所有手势识别的父类,不允许直接使用,可以用来自定义手势
最常用的属性:
view: 发生手势的视图
state: 手势当前的状态,主要用于连续手势,对于离散手势一般不使用
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状态;因为是在手指离开屏幕后,该手势才被识别的。