触摸:
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、如:
手势识别器: