UITapGestureRecognizer 的用法

原文地址:UITapGestureRecognizer 的用法作者:ShangShang
02 //单指单击
03 2: UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self
04 3: action:@selector(handleSingleFingerEvent:)];
05 4: singleFingerOne.numberOfTouchesRequired = 1; //手指数
06 5: singleFingerOne.numberOfTapsRequired = 1; //tap次数
07 6: singleFingerOne.delegate = self;
08 7:
09 8: //单指双击
10 9: UITapGestureRecognizer *singleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self
11 10: action:@selector(handleSingleFingerEvent:)];
12 11: singleFingerTwo.numberOfTouchesRequired = 1;
13 12: singleFingerTwo.numberOfTapsRequired = 2;
14 13: singleFingerTwo.delegate = self;
15 14:
16 15: //双指单击
17 16: UITapGestureRecognizer *doubleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self
18 17: action:@selector(handleDoubleFingerEvent:)];
19 18: doubleFingerOne.numberOfTouchesRequired = 2;
20 19: doubleFingerOne.numberOfTapsRequired = 1;
21 20: doubleFingerOne.delegate = self;
22 21:
23 22: UITapGestureRecognizer *doubleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self
24 23:    action:@selector(handleDoubleFingerEvent:)];
25 24: doubleFingerTwo.numberOfTouchesRequired = 2;
26 25: doubleFingerTwo.numberOfTapsRequired = 2;
27 26: doubleFingerTwo.delegate = self;
28 27:
29 28: //如果不加下面的话,当单指双击时,会先调用单指单击中的处理,再调用单指双击中的处理
30 29: [singleFingerOne requireGestureRecognizerToFail:singleFingerTwo];
31 30: //同理双指亦是如此
32 31: [doubleFingerOne requireGestureRecognizerToFail:doubleFingerTwo];
33 32:
34 33: [self.view addGestureRecognizer:singleFingerOne];
35 34: [self.view addGestureRecognizer:singleFingerTwo];
36 35: [self.view addGestureRecognizer:doubleFingerOne];
37 36: [self.view addGestureRecognizer:doubleFingerTwo];
38 37:
39 38: [singleFingerOne release];
40 39: [singleFingerTwo release];
41 40: [doubleFingerOne release];
42 41: [doubleFingerTwo release];
43 处理事件的方法,代码:
44 1: //处理单指事件
45 2: - (void)handleSingleFingerEvent:(UITapGestureRecognizer *)sender
46 3: {
47 4: if (sender.numberOfTapsRequired == 1) {
48 5: //单指单击
49 6: NSLog(@"单指单击");
50 7: }else if(sender.numberOfTapsRequired == 2){
51 8: //单指双击
52 9: NSLog(@"单指双击");
53 10: }
54 11: }
55 12: //处理双指事件
56 13: - (void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender
57 14: {
58 15: if (sender.numberOfTapsRequired == 1) {
59 16: //双指单击
60 17: NSLog(@"双指单击");
61 18: }else if(sender.numberOfTapsRequired == 2){
62 19: //双指双击
63 20: NSLog(@"双指双击");
64 21: }
65 22: }
66 将相应代码复制到你的工程中即可使用,由于代码中已经有详细的解释说明,这里就不在重复解释了。
67 代码中只是列举了单指与双指对于单击或多击的处理,同理多指的操作需修改numberOfTouchesRequired属性,对点击的次数需修改numberOfTapsRequired属性。
68 对于其他手势例如UISwipeGestureRecognizer,UILongPressGestureRecognizer,UILongPressGestureRecognizer的操作使用类似处理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值