2010-01-21 66 views
0

即使没有发生任何事件,我正在寻找一种获取所有当前触摸的方法。我知道[UIEvent allTouches],但我需要能够看到“这些都是在屏幕上的触摸”,即使他们没有任何改变。它似乎应该是可能的,因为allTouches可以访问尚未更新的触摸,因此手机正在跟踪它们。在没有UIEvent的情况下获取所有触摸

回答

0

覆盖touchesBegan和touchesEnded,并将当前点与事件中的缓存点进行比较。

+1

请注意,我目前没有与之比较的点​​。我只是使用'touchesBegan/Moved/Ended'来维护触摸位置的缓存,并在必要时提及。 – 2010-01-24 17:42:32

+0

touchesCancelled怎么样?另外,touchesEnded并不总是被调用。 – jjxtra 2014-07-22 18:00:43

0

尝试hitTest:withEvent并用pointInside:withEvent过滤。

+0

hitTest会告诉我一个点在哪个视图中。我想要一组所有触摸在屏幕上。除非我误解了某些东西。 – 2010-01-21 05:24:09

+0

我一般用pointInside来测试,以确定当组件在响应者链中挑剔时(例如嵌套滚动视图,自定义GUI小部件等),用户触及最顶层视图的坐标 [UIEvent allTouches]返回一个数组所有触摸(UITouch)的API都可以提供给你。你想要的是访问最后一个系统UITouch的内部状态? 我认为你能够做的最好的就是访问touchesBegan和touchesEnded,并缓存一个UITouch自己比较它们。 – 2010-01-21 14:01:12

+0

是的,我害怕我必须自己做,只是看起来很傻,他们不向你开放。 – 2010-01-21 21:20:49

相关问题