现在我有它,所以两次点击放大一个视图,一次点击显示一个新视图。问题是目前如果用户点击三次,缩放完成后新视图仍会显示。我想在双击/缩放后禁用注册点击 0.25 秒。最好的方法是什么?我已经有一个方法在将缩放注册为完成后触发,所以我可以把它扔在那里。
谢谢!
现在我有它,所以两次点击放大一个视图,一次点击显示一个新视图。问题是目前如果用户点击三次,缩放完成后新视图仍会显示。我想在双击/缩放后禁用注册点击 0.25 秒。最好的方法是什么?我已经有一个方法在将缩放注册为完成后触发,所以我可以把它扔在那里。
谢谢!
您可以做一些简单的事情,比如在开始缩放和完成缩放时设置userInteractionEnabled
视图。NO
YES
有3种简单的方法,您可以选择其中任何一种:
gestureRecognizer.enabled = NO;
)view.userInteractionEnabled = NO;
)[[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
)。如果你已经有这样的方法,对你有好处!
这是UI设计中的常见问题。如果您使用动画进行缩放,您可以在您的方法中禁用点击识别器,然后在完成块中将其重新打开。
yourTapRecognizer.enabled = 否;
yourTapRecognizer.enabled = YES;