我需要计算拖动触摸的方向,以确定用户是在拖动屏幕还是向下拖动屏幕。
其实很简单吧?但是:
1)手指向下,你得到-touchesBegan:withEvent:called
2)必须等到手指移动,并且-touchesMoved:withEvent:被调用
3)问题:此时判断用户是否向上或向下拖动都很危险。
我的想法:检查时间并累积计算向量,直到可以确定触摸的方向。
容易吗?不。想想看:如果用户在同一个位置按住手指5分钟,但那么决定向上或向下移动怎么办?砰!你的代码会失败,因为当手指没有真正移动时,它试图确定触摸的方向。
问题2:当手指蹲下并停留在同一个位置几秒钟,因为用户有点风,想着现在要做什么,你会得到很多-touchesMoved:withEvent:电话很可能,但触摸位置的变化很小。
所以我的下一个想法是:在-touchesMoved:withEvent:中进行积累,但是只有在超过某个移动阈值的情况下。
我敢打赌你有更好的概念吗?
答案 0 :(得分:1)
如果您只是在谈论检测滑动,那么在OS 3.2中,Apple推出了gesture recognizers以便在iPad应用程序中使这种事情变得更容易。您还可以为其他类型的手势(如长拖动)编写自己的识别器,操作系统可以完成大部分繁重工作,并通知您“有趣的时刻”。