目标C触摸事件锁定

问题描述:

目前我遇到了一个问题,其中有表格单元格允许触摸事件获取详细信息。但是,如果用户在1秒内按下该单元2-4次,则会导致将多个视图推到导航视图控制器上。这会在视图弹出时导致明显的错误,并且导航控制器无法进入子视图并返回。导致多个陷阱,最不幸的是没有出现错误日志。但是,由于这种行为不应该首先得到支持。问题是除了线程锁定之外,还有其他方法可以防止UiButtons或表格单元格上出现多个触摸事件吗?由于在Xcode 7中添加了https和http安全设置,因此我正在使用Xcode版本6.4。如果后续版本的Xcode自动实现此解决方案,那么将会善于了解。谢谢你的帮助。目标C触摸事件锁定

+0

显示触摸时发生的代码。 – Fogmeister

+0

我会在一分钟后在这里发布一些信息。 – Bored915

+0

您在viewDidAppear之前做了太多工作,在下一个(推送)的UIViewController中反过来阻塞了UI线程。这导致在您希望将转换操作输入到新的UIViewController时接收UITouchEvent。我不建议使用userinteraction启用标志。 –

可以锁定的按钮(或小区)它轻敲后:

button.userInteractionEnabled = NO; 

或整个界面:

[[UIApplication sharedApplication] beginIgnoringInteractionEvents]; 

以及当过渡/加载完成解锁。

+0

这似乎会工作,生病给它一个测试,看看。 – Bored915

如果您不想用GCD扼杀触摸事件,则UIButtonUIGestureRecognizer都会显示enabled属性。您可以简单地在一次触摸后禁用该按钮,并在推动详细视图控制器后重新启用它。

一个简单的方法来重新启用它会在控制器推详细视图的viewWillAppear方法 - 这样每当你回去给视图控制器,而不必听UINavigationControllerenabled属性会自动复位转换等。