【发布时间】:2011-02-14 17:06:48
【问题描述】:
我正在开发一个多点触控应用程序。预计一触就会移动,我需要跟踪它的位置。对于所有其他的触摸,我需要跟踪它们的开始和结束,但它们的移动不那么重要。
有时,当 3 个或更多触摸处于活动状态时,我的 UIView 不会收到 touchesMoved: 移动触摸的事件。这个问题是间歇性的,尝试几次后总是可以重现:
- 用两根手指触摸屏幕。
- 用另一根手指触摸屏幕,然后四处移动。
- 移动的手指总是调度 touchesBegan: 和 touchesEnded:,但有时不调度任何 touchesMoved: 事件。
只要移动的触摸没有调度 touchesMoved: 事件,我可以强制它调度 touchesMoved: 如果我移动其他触摸之一。这似乎“强制”每次触摸都重新检查其位置,并且我成功收到了 touchesMoved: 事件。但是,这很笨拙。
这个错误在 iPhone 2G 和 3GS 型号上都可以重现。
我的问题是:如何确保我的移动触摸调度 touchesMoved: 事件?
有人对这个问题有任何经验吗?我花了几天时间寻找答案。我发现了一篇描述如何与 VBL 同步触摸事件的帖子:http://www.71squared.com/2009/04/maingameloop-changes/。但是,这并没有解决问题。
我真的不知道该怎么做。任何帮助表示赞赏!
【问题讨论】:
标签: iphone objective-c ios multi-touch touchesmoved