2012-04-03 76 views
2

我需要在iOS MonoTouch應用程序中跟蹤多個觸摸事件。我已經覆蓋了TouchesBegan,TouchesCancelled,TouchesMoved和TouchesEnded方法。iOS上的MonoTouch中的多點觸摸

我現在需要弄清楚的是,如何在每個覆蓋過程中遍歷觸摸(將會有多個觸摸)並匹配它們。我想知道什麼時候觸摸開始,並對其進行操作,而不是觸摸事件。用戶可能會放下手指,在那個時候,如果手指停下來,我會啓動一個計時器來執行某些操作。

如果在那段時間用戶放下另一個手指,我會想要啓動一個不同於第一個的計時器。

我很確定我可以找出一種方法來存儲我的計時器等。我無法弄清楚如何遍歷NSSet在每個覆蓋中包含的觸摸事件,以及如何在覆蓋之間唯一標識它們。

我假設在NSSet中的TouchesBegan觸摸將與Netsets中的TouchesMoved,TouchesCancelled或TouchesEnded觸摸相匹配,這些覆蓋也會得到。

這是真的嗎?如果是這樣,我怎麼得到每一個和唯一的身份證明他們匹配?

回答

4

這裏是MonoGame的使用TouchesBegan等的一個很好的例子:https://github.com/mono/MonoGame/blob/develop/MonoGame.Framework/iOS/iOSGameView_Touch.cs

UITouch也有你可以用它來區分觸摸時間戳字段。我認爲你應該將它們存儲在字典中以獲得你提到的功能。

下面是UITouch類別參考:http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITouch_Class/Reference/Reference.html

+0

真棒。這是touches.ToArray和touch.Handle.ToInt32,這是我正在尋找的鑰匙。 – user856232 2012-04-03 16:24:32

+0

不適合我,在TouchesMoved,我得到touches.Count,它總是1,即使當我把更多的手指。 – Peyman 2012-06-05 16:39:29

+1

如果你希望偉大的程序員,你必須使用的力量。 – jonathanpeppers 2012-06-05 19:03:05