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;

   7:      

   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:      }else if(sender.numberOfTapsRequired == 2){

   8:          //单指双击

   9:          NSLog(@"单指双击");

  10:      }

  11:  }

  12:  //处理双指事件

  13:  - (void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender

  14:  {

  15:      if (sender.numberOfTapsRequired == 1) {

  16:          //双指单击

  17:          NSLog(@"双指单击");

  18:      }else if(sender.numberOfTapsRequired == 2){

  19:          //双指双击

  20:          NSLog(@"双指双击");

  21:      }

  22:  }

将相应代码复制到你的工程中即可使用,由于代码中已经有详细的解释说明,这里就不在重复解释了。

代码中只是列举了单指与双指对于单击或多击的处理,同理多指的操作需修改numberOfTouchesRequired属性,对点击的次数需修改numberOfTapsRequired属性。

对于其他手势例如UISwipeGestureRecognizer,UILongPressGestureRecognizer,UILongPressGestureRecognizer的操作使用类似处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值