2010-05-09 110 views
0

我需要计算拖动方向,确定用户是在拖动屏幕还是在屏幕下方。如何跟踪触摸矢量?

其实很简单吧?但是:

1)手指下降,你会得到-touchesBegan:withEvent:方法称为

2)必须等待,直到手指的移动,并-touchesMoved:withEvent:方法被调用

3)问题:在这指出用户确实拖动或拖动很危险。

我的想法:检查时间并积累计算矢量,直到安全地告诉触摸方向。

简单吗?不需要考虑:如果用户在同一地点将手指按住5分钟,但是THEN决定向上还是向下移动?砰!你的代码会失败,因为它试图确定手指没有真正移动时的触摸方向。

问题2:当手指下垂并停留在同一地点几秒钟,因为用户有点风,并且现在想要做什么,你会得到很多-touchesMoved:withEvent :很有可能,但触摸位置的变化很小。

所以我的下一个想法:在-touchesMoved:withEvent:中进行积累,但只有当超过某个运动阈值时。

我敢打赌你有一些更好的概念?

+0

是不是有这种类型的库? – 2010-05-09 15:51:41

回答

1

如果你只是在谈论检测滑动,然后在OS 3.2中,苹果公司推出gesture recognizers,使iPad应用程序中这种事情更容易。你也可以为其他类型的手势(比如长拖动)编写自己的识别器,操作系统完成大部分重要工作,并通知你有关“有趣的时刻”。

根据somereports,它看起来像他们将在4.0和iPhone可用。

+0

不,我使用OS 3.0,并且已经有很多代码用于触摸处理。我需要的是一种以安全的方式检测载体的策略。 – dontWatchMyProfile 2010-05-09 23:07:29