iOS UITouch触摸与UIGesture手势03 手势识别器(UIGestureRecognizer)
一、什么是手势识别器:
手势识别器UIGestureRecognizer是用来识别用户使用设备时候,所用的是手势,是滑动呢,还是轻击还是其他。
UIGestureRecognizer类,用于检测、识别用户使用设备时所用的手势。它是一个抽象类,定义了所有手势的基本行为。以下是UIGestureRecognizer子类,用于处
理具体的用户手势行为:
- UITapGestureRecognizer(轻击)
- UIPinchGestureRecognizer(捏合)
- UIPanGestureRecognizer(平移)
- UISwipeGestureRecognizer(轻扫)
- UIRotationGestureRecognizer(旋转)
- UILongPressGestureRecognizer(长按)
它们都继承于UIGestureRecognizer,是它的子类。
二、实例
以UITapGestureRecognizer(轻击)为例:
先看它的两个属性:
@property (nonatomic) NSUInteger numberOfTapsRequired; // Default is 1. The number of taps required to match
@property (nonatomic) NSUInteger numberOfTouchesRequired; // Default is 1. The number of fingers required to match
其中numberOfTapsRequired属性可以轻击的次数,默认是一次。numberOfTouchesRequired属性可以设置几只手指轻击,默认是一只手指。两个属性 可以一起用,达到不同的效果。
代码示例:
- (void)viewDidLoad {
[super viewDidLoad];
//添加一个轻击手势gesture1,并实现轻击时的方法gestureAction
UITapGestureRecognizer * gesture1=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(sigleGestureAction)];
[self.view addGestureRecognizer:gesture];//别忘了添加手势,这里把手势添加在了self.view上。
//添加双击手势,实现双击方法。
UITapGestureRecognizer * gesture2=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doubelGestureAction)];
gesture2.numberOfTapsRequired=2;//如果是双击,将这个属性值设置为哦2。
[self.view addGestureRecognizer:gesture2];
gesture1 requireGestureRecognizerToFail:gesture2];//注意这句代码是将两重手势区分开。
}
-(void)sigleGestureAction{
NSLog(@"单击");
}
-(void)doubelGestureAction{
NSLog(@"双击");
}
添加其他的手势,方法基本上都是一样的,当你添加的时,创建完对象不妨看看文档,设置下属性,写下添加的方法就OK了。
初学iOS,如有错误,请不吝赐教。