如果我一次点击两个视图,如何只考虑一个手势

时间:2013-12-23 17:55:44

标签: ios ios5 ios6 ios7 ios6.1

我在我的应用程序中创建了一个视图,我再次创建了十个视图,如网格,我在10个视图上添加了UITapGestureRecogniser,如果用户点击网格中的一个视图,我将调用基于其标记值的方法我将创建一个特定类的新视图实例。但是如果用户一次点击两个视图或者在几分之一秒的时间点上,我会遇到问题,那么该方法被调用两次。它在我的内部创建问题application.i需要解决方案我没有得到任何解决方案该怎么做。任何人都知道这个句柄请尽快帮助我。

谢谢和问候 swathi

1 个答案:

答案 0 :(得分:0)

我只是创建一个布尔值,在这些视图调用的每个方法中都设置为NO。

在方法结束时,将其设置为YES

-(void)view1tapped{
       BOOL shouldRecognizeTap = enabled;
       self.enabled = NO;
       if (shouldRecognizeTap){
               // do your stuff here
       }
       self.enabled = YES;
} 

-(void)view2tapped{
       BOOL shouldRecognizeTap = enabled;
       self.enabled = NO;
       if (shouldRecognizeTap){
               // do your stuff here
       }
       self.enabled = YES;
} 

另外,在你的gestureRecognizer委托方法中,我希望你正在检查这样的识别器状态

-(void) handleTapGesture:(UIGestureRecognizer *) sender {
    if (sender.state != UIGestureRecognizerStateEnded)  // <---
        return;  

    sender.enabled = NO // (or disable all the other gesture recognizers).
    // do your stuff here   
    sender.enabled = YES;
}