2010-08-23 50 views
4

我在說,用戶觸摸屏幕和touchesBegan被調用之間可能會經過多長時間? (或者更低的水平,如果這樣的東西可用。)亞毫秒?多毫秒?十?iPad響應觸摸的速度有多快?

+0

你剛纔是出於一般好奇還是因爲你正在做一些可能會導致延遲的計算? 如果你是出於一般的好奇心,那麼它對我們來說真的不應該成爲開發者。這個特定的指標是蘋果公司需要出汗的一個細節,而不是我們。 如果你是因爲計算問題,那麼我會說,如果你問什麼限制是做什麼的,那麼你需要認真重新評估你的方法。 (移動到意見每個建議) – 2010-08-23 19:51:07

+0

@飛利浦我想你可能誤解了我的問題。我想知道在用戶第一次觸摸屏幕和第一時間我的代碼被告知此事件之間存在已知延遲,例如, touchesBegan被調用。我並不是要求在觸摸發生時和實際聽到它時發生(不知何故?)計算的上限。我想知道更多的可行性,比如衡量一個人的反應時間。 – zem 2010-08-23 20:25:43

+0

我認爲,從觸摸到顯示結果的iPad反應速度的難度數據很難在沒有進入較低級別的API的情況下實現(如果這些數據甚至可以訪問;我可以看到Apple希望保留這是一個祕密)。我在其他地方的遊戲開發論壇上看到過這個問題,我見過的所有功能都是用戶觸摸到用戶觸摸,而不是用戶觸摸到屏幕顯示。 – 2010-08-23 20:44:48

回答

3

我很確定touchesBegan被稱爲非常快(意思是,無論最小延遲存在於事件路徑中)。我注意到在我的代碼中,我得到了一個單觸touchBegin,觸摸兩個觸摸都已經在列表中。我假設我不會非常精確地將兩根手指放在一起,但從我看到的touchesBegan事件在幾毫秒內傳遞。我懷疑蘋果在將它們傳遞給它們以便進行更有效的處理之前非常短暫地保留了這些接觸,可能還使用該延遲來過濾掉意外接觸(有點像機械開關的反彈)。

我在我的視圖中使用了touchesBegan來凍結我的滾動動畫,我的感覺是,當我觸摸屏幕時,滾動會立即停止。

真正的延遲來自手勢識別器。他們經常需要等待,看看你是否已經移動到足以表示一個平底鍋,或者如果你持有足夠長的時間來持有,或者你已經發布了沒有拖動來表示水龍頭。這些延遲當然可能是相當大的,雖然他們在我的經驗中仍然只有幾分之一秒。

+0

+1,感覺可能是直接的,因爲它比16.666?ms(1/60一秒鐘),或者延遲時間長在繪圖循環中。 – Nektarios 2011-07-16 01:42:09