防止多点触控的 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 触摸事件的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序~触摸相关事件(拖拽操作手势识别多点触控)

Linux 中的多点触控

iOS 上 MonoTouch 中的多点触控

USB HID多点触控串行报告

朝花夕拾Android自定义View篇之多点触控(上)基础知识

多点触控与多鼠标支持