【问题标题】:How to consider only one gesture if i am tapping on two views at a time如果我一次点击两个视图,如何只考虑一个手势
【发布时间】:2013-12-23 17:55:43
【问题描述】:

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

谢谢&问候 斯瓦蒂

【问题讨论】:

  • 您能否更具体地说明您在该方法中所做的工作?
  • 调用该方法时,在该方法内部禁用窗口或应用程序的事件,以便在您稍后启用它之前它不会接收事件。

标签: ios ios5 ios6 ios7 ios6.1


【解决方案1】:

我只是创建一个布尔值,在这些视图调用的每个方法中都设置为 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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多