iOS上的MonoTouch中的多点触控

时间:2012-04-03 00:06:26

标签: ios xamarin.ios multi-touch

我需要在iOS MonoTouch应用程序中跟踪多个触摸事件。我已经覆盖了TouchesBegan,TouchesCancelled,TouchesMoved和TouchesEnded方法。

我现在需要弄清楚的是如何在每个覆盖期间迭代触摸(将有不止一个)并匹配它们。我想知道什么时候触摸开始并用它做一些事情与不同的触摸事件。用户可以放下手指,此时我将启动计时器,以便在手指停留时做某事。

如果在此期间用户放下另一根手指,我会想要启动一个与第一个不同的计时器。

我很确定我能想办法存储我的计时器等。我无法弄清楚如何遍历NSSet在每个覆盖中包含的触摸事件,然后如何在覆盖之间唯一地标识它们。

我假设NSSet中的TouchesBegan触摸将与NSSets中的TouchesMoved,TouchesCancelled或TouchesEnded触摸相匹配,这些覆盖也会得到。

这是真的吗?如果是这样,我如何得到每一个并唯一地标识它们以匹配它们?

1 个答案:

答案 0 :(得分: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