防止多点触控的 UIButton 触摸事件
Posted
技术标签:
【中文标题】防止多点触控的 UIButton 触摸事件【英文标题】:Prevent UIButton touch event for multitouch 【发布时间】:2011-06-02 09:53:01 【问题描述】:在发现 UITapGestureRecognizer (How to cancel button tap if UIGestureRecognizer fires?) 中存在错误后,我正在考虑在我的视图控制器的 touchesEnded 方法中检测两个手指点击和两个手指双击。
这是情况,我想做什么以及我的问题:
情况:我有一个 UIView,由 UIViewController 管理。此视图包含多个对点击做出反应的 UIButton。
我想要什么:我想对我的视图上的两根手指点击和两根手指双击做出反应,同时也对 UIButtons 上的一根手指点击做出反应。
问题:一旦点击按钮(即使在视图上使用两根手指),我的视图控制器上的 touchesEnded 方法也不再被调用。 使用多个手指时如何取消按钮点击?
我已经尝试继承 UIView 并使用 hitTest 方法,但在此事件的 touches 属性始终为空。我还尝试用透明的 UIView 覆盖按钮,但这也取消了按钮触摸。
【问题讨论】:
【参考方案1】:@Mark 我试图从前几天的工作中获取您的示例。由于这是一个错误,我将其更改为使用点击识别器。这不是一个真正的解决方案,因为您没有在按钮上获得点击效果,但右侧按钮会发送 Touch Up Inside
事件。您可以查看这些更改here
。看看有没有帮助。
【讨论】:
非常感谢您的一再帮助,Deepak!这适用于演示项目,我现在将尝试将其集成到我的应用程序中。我通过将这个添加到“buttonPressed”方法解决了点击效果问题:[sender setHighlighted:YES]; [发送者 performSelector:@selector(setHighlighted:) withObject:[NSNumber numberWithBool:NO] afterDelay:0.1];以上是关于防止多点触控的 UIButton 触摸事件的主要内容,如果未能解决你的问题,请参考以下文章