iOS Touchesbegan 后续触摸仅在第一次触摸移动时到达

Posted

技术标签:

【中文标题】iOS Touchesbegan 后续触摸仅在第一次触摸移动时到达【英文标题】:iOS Touches Began susequent touches only arrive if first touch moved 【发布时间】:2012-01-20 22:10:27 【问题描述】:

我正在为钢琴应用程序覆盖 UIView 中的触摸方法。

如果我用一根手指触摸 iPhone 或 iPad,我会得到 - 正如预期的那样 - touchesBegan callabck。如果我用第二根手指触摸,我会在 touchesMoved 回调中得到该事件。这一切都很好,但是只有当我用第二个手指触摸时第一根手指移动时,我才会收到第二个(和第三个等)回调。

对于钢琴应用来说,这是一个问题,因为我需要能够非常快速地触摸。

有人知道解决方法吗?除了使用 touchesBegan/Moved/Ended 方法之外,还有其他选择吗?

【问题讨论】:

【参考方案1】:

您是否为该 UIView 启用了多点触控 (setMultipleTouchEnabled:YES)?

【讨论】:

当然,我在覆盖 touchesX 方法的 UIView 上启用了多点触控。但是钢琴键也在另一个像容器一样的子视图中,我也必须在那里设置MultipleTouchEnabled:YES。然后它起作用了。 嘿,谢谢 lukebuehler... 我也遇到了类似的问题,直到我意识到我还有另一个子视图也需要启用它。

以上是关于iOS Touchesbegan 后续触摸仅在第一次触摸移动时到达的主要内容,如果未能解决你的问题,请参考以下文章

对持续触摸采取行动,而不是仅仅在开始 touchesBegan 时采取行动:

通过 TouchesBegan/TouchesMoved 的触摸输入(笔/手指)有很大的初始间隙

如何仅在第一个完成后才发出后续 API 请求?

检测用户是不是在 iOS 上触摸过屏幕

TouchesBegan 只调用了一次

jQuery 在第一次切换后仅在 Safari iOS5 中单击 3 次后触发