iOS学习笔记18—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的操作使用类似处理。




你可能感兴趣的:(iOS学习笔记18—UITapGestureRecognizer 的用法)