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属性。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值