触摸手势

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了触摸手势相关的知识,希望对你有一定的参考价值。

触摸:
1、创建一个视图,重写TA在不同阶段的触发的方法,方法如下:
技术分享技术分享
2、当重写触碰移动方法,想要实现一个视图随着自己的鼠标移动的方法时
     获取触摸在屏幕上的手指对象:
     UITouch *tou = [touches anyObject];
     (1)要获取手指移动之前的位置 
     之前的位置 = [tou previousLocationInView:self]
     (2)要获取手指移动之后的位置
     之后的位置 = [tou locationInView];
     (3)视图现在的位置的X值就是: 自己原来的位置 + (手指移动之后的x的值 - 手指移动之前x的值)
     (4)视图现在位置的y值同理
     代码如下:
技术分享技术分享
拓展:视图中有一个属性是userInteractionEnabled,这个属性的默认值是YES,如果把TA的这个属性设置为NO,它将不能触发事件
 
手势:
创建手势的步骤:
1、创建手势识别器对象、如创建一个敲击手势对象
手势类型 *手势名 =[ [手势类型 alloc] init];如:
技术分享技术分享
2、可以设置敲击手势要连续敲击几次,手势识别才会成功,如:
技术分享技术分享
3、可以设置要几根手指同时敲击,手势才会识别成功
技术分享技术分享
4、为对象添加手势识别器对象
技术分享技术分享
5、为手势添加监听方法(可以在tapView1方法中打印一句话)
技术分享技术分享
6、记得打开用户交互
技术分享技术分享
注:清扫的属性:direction,设置清扫的方向:
技术分享技术分享
长按的属性:
技术分享技术分享
当手势是旋转的时候:方法内部的代码如下:
技术分享技术分享
当手势是缩放的时候,方法内部的代码如下:
技术分享技术分享
当手势是平移的时候,方法内部的代码如下:
技术分享技术分享
 
 
拓展1:手势是有代理对象的,可以为手势添加代理,可以在代理中阻断手势的运行等
步骤:
1、如:tap.delegate = self;
2、如:
技术分享技术分享
当有敲击手势的时候,就会走代理方法,返回NO不执行手势方法,返回YES执行手势方法,图中的代码表示:当手指点击图片的左边时手势有反应,当点击图片的右边时,手势不做反应
拓展2:可以设置多个手势一起为一个图片做处理,设置代理
步骤:
1、如:tap.delegate = self;
2、如:
技术分享技术分享
 
手势识别器:
技术分享技术分享

以上是关于触摸手势的主要内容,如果未能解决你的问题,请参考以下文章

确定手势识别器中触摸的节点

WPF 是不是有触摸并按住手势?

在具有相同触摸的视图上切换手势

IOS 手势-轻点触摸手势

触摸手势在 Scrollview(Xcode、Swift)中不起作用

导致MacBook 触摸板手势突然失效的原因都有哪些