0

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

谢谢!

4

3 回答 3

1

您可以做一些简单的事情,比如在开始缩放和完成缩放时设置userInteractionEnabled视图。NOYES

于 2013-06-21T19:25:19.987 回答
0

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

  1. 禁用手势识别器 ( gestureRecognizer.enabled = NO;)
  2. 禁用视图上的用户交互 ( view.userInteractionEnabled = NO;)
  3. 在应用程序中禁用事件处理 ( [[UIApplication sharedApplication] beginIgnoringInteractionEvents])

要再次启用交互,您可以使用

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)。如果你已经有这样的方法,对你有好处!

于 2013-06-22T11:07:21.297 回答
0

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

yourTapRecognizer.enabled = 否;

yourTapRecognizer.enabled = YES;

于 2013-06-22T10:52:47.030 回答