手势UIGestureRecognizer

来源:互联网 发布:htc u11 网络优化 编辑:程序博客网 时间:2024/06/10 04:32

如果不设置背景颜色的话 有可能 不响应手势
手势如果不响应
1 看是否添加到了imageview上 如果是 把 self.view.userInteractionEnabled 设置成YES
2 查看是否设置了背景颜色 如果没有设置 设置背景颜色
3 手势冲突 设置手势的优先级 (截获触发事件。手势)设置优先级
requireGestureRecognizerToFail

五大手势:点击(还包括 长按) 拖拽 旋转 捏合 轻扫(都属于手势 继承自UIGestureRecognizer 父类)

1、点击
初始化一个点击的手势(这里初始化会附带一个要触发的方法)

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction:)];

设置点击的次数

 tap.numberOfTapsRequired = 1;

设置点击手指的个数

tap.numberOfTouchesRequired = 1;

将手势添加到屏幕上

[self.view addGestureRecognizer:tap];

2、长按
初始化

 UILongPressGestureRecognizer *longPress =[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress:)];

最小按下的持续时间

longPress.minimumPressDuration = 1;

手指的个数

longPress.numberOfTouchesRequired = 2;

把手势添加到视图上

[self.view addGestureRecognizer:longPress];

3、拖拽
初始化

 UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(pan:)];

设置最少的手指个数

pan.minimumNumberOfTouches = 2;

设置最多的手指个数

pan.maximumNumberOfTouches = 2;

添加到屏幕上

 [self.view addGestureRecognizer:pan];

4、轻扫
初始化

UISwipeGestureRecognizer *swipe =[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)];

轻扫的方向

 swipe.direction = UISwipeGestureRecognizerDirectionLeft;

添加到屏幕上

[self.view addGestureRecognizer:swipe];

5、捏合
初始化

  UIPinchGestureRecognizer *pinch =[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinch:)];    [self.view addGestureRecognizer:pinch];

6、旋转

UIRotationGestureRecognizer *rotation =[[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotation:)];    [self.view addGestureRecognizer:rotation];

设置手势优先级
//需要 轻扫手势执行完 之后 再去执行 拖拽手势
//设置手势优先级

 [pan requireGestureRecognizerToFail:swipe];
0 0
原创粉丝点击