IOS手势识别
2015-12-10 17:41
387 查看
1.响应者链的事件传递过程 (1)如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的父视图。 (2)在视图层次结构的最顶级视图,如果也不能处理收到的事件或消息,则其将事件或消息传递给window对象进行处理。 (3)如果window对象也不处理,则其将事件或消息传递给UIApplication对象。 (4)如果UIApplication也不能处理该事件或消息,则将其丢弃。 2. UIGestureRecognizer 如果想监听一个view上面的触摸事件,之前的做法是: (1)自定义一个view。 (2)实现view的touches方法,在方法内部实现具体处理代码。 通过touches方法监听view触摸事件,有很明显的几个缺点: (1)必须得自定义view。 (2)由于是在view内部的touches方法中监听触摸事件,因此默认情况下,无法让其他外界对象监听view的触摸事件。 (3)不容易区分用户的具体手势行为。 iOS 3.2之后,苹果推出了手势识别功能(Gesture Recognizer),在触摸事件处理方面,大大简化了开发者的开发难度。 为了完成手势识别,必须借助于手势识别器----UIGestureRecognizer,利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势, UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,使用它的子类才能处理具体的手势: (1)UITapGestureRecognizer(敲击) (2)UIPinchGestureRecognizer(捏合,用于缩放) (3)UIPanGestureRecognizer(拖拽) (4)UISwipeGestureRecognizer(轻扫) (5)UIRotationGestureRecognizer(旋转) (6)UILongPressGestureRecognizer(长按)
代码:为一个view添加一个事件(两个手指点击两次才会触发)
#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIView *grayView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)]; tap.numberOfTapsRequired = 2;// 设置点击次数:默认为1 tap.numberOfTouchesRequired = 2; // 设置点击的手指个数 [self.grayView addGestureRecognizer:tap]; } - (void)tap:(UITapGestureRecognizer *)tapGesture { NSLog(@"用两个手指点击了两次"); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
相关文章推荐
- iOS CoreAnimation专题——总览篇
- iOS 7 表视图顶部空白解决
- 04.iOS 使用lame将wav转换为mp3
- iOS重新定义系统自带的方法,如 重定义 CGRectMake 和 CGPointMake 可以解决屏幕适配的问题
- IOS中的触摸事件
- iOS 十进制 二进制 转换
- 需求 - 12 - 图片缓存
- ios 学习笔记之控件属性
- 模型的应用 && Xib &&代理模式的应用【应用管理】
- ios 实现图片上传的2种方式
- 【iOS 开发】如何去除tableView多余的空Cell
- Teemo__Tip1__iOS界面跳转及刷新
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- iOS多线程编程之NSThread的使用
- iOS 学习日志 :利用AFNetWorking 做文件上传
- mask遮障效果实现注水动画
- iOS LocationManager定位国内偏移,火星坐标(GCJ-02)解决方法:接口转换法,代码转换法
- ios 学习总结之动画(转)
- iOS 学习日志:调用相机拍照获得图片旋转问题
- 处理iOS报错: Warning “attempt to present ViewController whose view is not in the window hierarchy”