手势识别-UITapGestureRecognizer
2012-07-30 10:57
295 查看
//单指单击 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的操作使用类似处理。
相关文章推荐
- 手势识别器(UIGestureRecognizer)- UITapGestureRecognizer(敲击)
- 21. 手势识别之UITapGestureRecognizer
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- iphone手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
- IOS初级教程2:UITapGestureRecognizer手势识别的简单使用
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- iphone手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
- UITapGestureRecognizer手势识别(双击、捏、旋转、拖动、划动、长按)
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效 或者点击UITableView的空白处收起键盘
- IOS高级教程3:UITapGestureRecognizer手势识别的简单使用到精通
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效