在Objective-C中双击后,避免注册点击.25秒

时间:2013-06-21 19:20:56

标签: objective-c cocoa-touch uigesturerecognizer

现在我拥有它,以便两个水龙头放大视图,一个水龙头就会显示一个新视图。问题是,如果用户三次点击,则在缩放完成后新视图仍会显示。我想在双击/缩放后禁用注册点击0.25秒。最好的方法是什么?我已经有一个方法在注册了一个完整的缩放后被触发,所以我可以把它扔进那里。

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以做一些简单的事情,比如在开始缩放时将视图上的userInteractionEnabled设置为NO,并在完成缩放时设置YES

答案 1 :(得分:0)

这是UI设计中的常见问题。如果您使用动画进行缩放,则可以在方法中禁用点击识别器,并在完成块中重新打开。

yourTapRecognizer.enabled = NO;

yourTapRecognizer.enabled = YES;

答案 2 :(得分:0)

有三种简单的方法,你可以选择其中任何一种:

  1. 禁用手势识别器(gestureRecognizer.enabled = NO;
  2. 禁用视图(view.userInteractionEnabled = NO;
  3. 上的用户互动
  4. 在应用中禁用事件处理([[UIApplication sharedApplication] beginIgnoringInteractionEvents]
  5. 要再次启用交互,您可以使用

    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t) (0.25 * NSEC_PER_SEC));
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void) {
        //enable recognizer, set user interaction to YES or call endIgnoringInteractionEvents
    });
    

    但是,我建议你将处理程序绑定到某个事件,而不是盲目地使用一些魔法时间(0.25 secs)。如果你有这样的方法,那对你有好处!