2012-10-14 25 views
2

我想爲兒童創建一個小型繪圖應用程序。我不想實現多點觸控繪圖應用程序,因此我將繪圖視圖的multipleTouchEnabled設置爲false。第二個手指觸發移動在SingleTouch-視圖

繪圖工作正常,到目前爲止,但是當孩子接觸到視圖與第二手指視圖的touchesMoved,事件處理程序被稱爲:

- (void) touchesMoved: (NSSet *) touches withEvent: (UIEvent *)event{ 
     UITouch *touch = [[event allTouches] anyObject]; 
     CGPoint touchPoint = [touch locationInView:self]; 

    //Draw a line from the last touchPoint to here… 

} 

通過這個當孩子觸摸屏幕與第二手指從第一手指畫到第二手指的線是非預期的。

有什麼辦法可以防止這種情況發生?

任何幫助將不勝感激

回答

1

我也有這個問題。你必須要麼

A)進行檢查,只允許觸摸移動一定距離。

B)取消所有觸摸被檢測到的第二觸摸時(重新啓用multipleTouch)

否則,在單次觸摸模式的第二指狀看起來相同作爲移動後的觸摸系統。

+0

Thx爲快速回復borrrden。有沒有什麼辦法可以區分第一次觸摸和之後創建的觸摸? – Rambazamba

+0

嗯,我這樣做的方式是保持觸摸計數(增加觸摸開始,並減少觸摸結束/取消)。如果它超過1,那麼你知道你有第二次觸摸。但是,跟蹤單個觸摸很困難(也許不可能)。我依稀記得一種方法,但我可能會記得Android。 – borrrden

+0

Thx我現在只保存第一個UITouch的指針,並將其與touchchesMoved中的觸摸進行比較。通過這個,我可以區分在第一個之後做出的觸摸。當touchesEnd被稱爲第一次觸摸時,我只是釋放指針。這對我來說似乎可行。 Thx再次爲您提供幫助。 :-) – Rambazamba

相關問題