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