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