2011-06-22 17 views
0

我正在寫一個iPad應用程序,需要非常精確地計算手指的移動時間,所​​以我非常希望能夠獲得最佳性能和準確性。我對這個兩個問題:touchesMoved():它是唯一的手指跟蹤API嗎?它是準確的嗎?

  1. 有關屏幕截取手指位置,我必須用touchesMoved(),或者是有一個低級別的API?

  2. 有誰知道touchesMoved()是否返回屏幕上的確切位置,還是iPad執行一些插值?

謝謝!

回答

2

你有3種方式攔截手指的位置: 一)UIResponder代表metods:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event; 

B)UIGestureRecognizer的方法

c)你也可以覆蓋- (空)的SendEvent:(的UIEvent *)事件;在UIApplicationDelegate或UIWindow中捕獲UIEvents的 - 但不建議使用此方法。

所有這些方法與包含觸摸的UITouch一起使用。這點由設備硬件計算,所以你不能影響精度。

最後一點:最小推薦觸摸面積爲44x44。如果您的觸摸區域會變小,那麼用戶會因爲使用您的軟件而感到不適。

0

觸摸不是很精確,因爲手指不是非常精確(不如鼠標光標),並且由於跟蹤硬件不是很精確(因爲它不需要,因爲手指大小 - 它不工作沒有顯着的觸及面積)。

也就是說,與許多其他電容式觸摸設備相比,iDevices擁有非常好的觸摸屏。我只是不確定像素精度在實踐中是否可以實現。

雖然這很容易實驗。