2010-05-09 107 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