UITapGestureRecognizer 的用法
//单指单击
2:UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self
3:action:@selector(handleSingleFingerEvent:)];
4:singleFingerOne.numberOfTouchesRequired = 1;//手指数
5:singleFingerOne.numberOfTapsRequired = 1;//tap次数
6:singleFingerOne.delegate= self;
8://单指双击
9:UITapGestureRecognizer *singleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self
10:action:@selector(handleSingleFingerEvent:)];
11:singleFingerTwo.numberOfTouchesRequired = 1;
12:singleFingerTwo.numberOfTapsRequired = 2;
13:singleFingerTwo.delegate= self;
14:
15://双指单击
16:UITapGestureRecognizer *doubleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self
17:action:@selector(handleDoubleFingerEvent:)];
18:doubleFingerOne.numberOfTouchesRequired = 2;
19:doubleFingerOne.numberOfTapsRequired = 1;
20:doubleFingerOne.delegate= self;
21:
22:UITapGestureRecognizer *doubleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self
23:action:@selector(handleDoubleFingerEvent:)];
24:doubleFingerTwo.numberOfTouchesRequired = 2;
25:doubleFingerTwo.numberOfTapsRequired = 2;
26:doubleFingerTwo.delegate= self;
27:
28://如果不加下面的话,当单指双击时,会先调用单指单击中的处理,再调用单指双击中的处理
29:[singleFingerOne requireGestureRecognizerToFail:singleFingerTwo];
30://同理双指亦是如此
31:[doubleFingerOne requireGestureRecognizerToFail:doubleFingerTwo];
32:
33:[self.view addGestureRecognizer:singleFingerOne];
34:[self.view addGestureRecognizer:singleFingerTwo];
35:[self.view addGestureRecognizer:doubleFingerOne];
36:[self.view addGestureRecognizer:doubleFingerTwo];
37:
38:[singleFingerOne release];
39:[singleFingerTwo release];
40:[doubleFingerOne release];
41:[doubleFingerTwo release];
处理事件的方法,代码:
1://处理单指事件
2:- (void)handleSingleFingerEvent:(UITapGestureRecognizer *)sender
3:{
4:if(sender.numberOfTapsRequired == 1) {
5://单指单击
6:NSLog(@"单指单击");
7:}elseif(sender.numberOfTapsRequired == 2){
8://单指双击
9:NSLog(@"单指双击");
10:}
11:}
12://处理双指事件
13:- (void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender
14:{
15:if(sender.numberOfTapsRequired == 1) {
16://双指单击
17:NSLog(@"双指单击");
18:}elseif(sender.numberOfTapsRequired == 2){
19://双指双击
20:NSLog(@"双指双击");
21:}
22:}
将相应代码复制到你的工程中即可使用,由于代码中已经有详细的解释说明,这里就不在重复解释了。
代码中只是列举了单指与双指对于单击或多击的处理,同理多指的操作需修改numberOfTouchesRequired属性,对点击的次数需修改numberOfTapsRequired属性。
对于其他手势例如UISwipeGestureRecognizer,UILongPressGestureRecognizer,UILongPressGestureRecognizer的操作使用类似处理。
网友评论