iOS 上 MonoTouch 中的多点触控
Posted
技术标签:
【中文标题】iOS 上 MonoTouch 中的多点触控【英文标题】:Multitouch in MonoTouch on iOS 【发布时间】:2012-04-03 00:06:26 【问题描述】:我需要在 ios MonoTouch 应用程序中跟踪多个触摸事件。我已经覆盖了 TouchesBegan、TouchesCancelled、TouchesMoved 和 TouchesEnded 方法。
我现在需要弄清楚的是如何在每个覆盖期间迭代触摸(会有多个)并匹配它们。我想知道触摸何时开始并对其进行操作而不是不同的触摸事件。用户可能会放下一根手指,此时如果该手指一直向下,我将启动一个计时器来做某事。
如果在此期间用户放下另一根手指,我将要为与第一根手指不同的那根手指启动一个计时器。
我很确定我可以找到一种方法来存储我的计时器等。我不知道如何遍历 NSSet 在每个覆盖中包含的触摸事件,然后如何在覆盖之间唯一地标识它们。
我假设 NSSet 中的 TouchesBegan 触摸将与这些覆盖获得的 NSSet 中的 TouchesMoved、TouchesCancelled 或 TouchesEnded 触摸匹配。
这是真的吗?如果是这样,我如何获取每一个并唯一标识它们以匹配它们?
【问题讨论】:
【参考方案1】:这是 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
【讨论】:
太棒了。我正在寻找的键是 touches.ToArray 和 touch.Handle.ToInt32。 对我不起作用,在 TouchesMoved 上,我得到 touches.Count 并且它始终为 1。即使我放了更多手指。 如果你想成为伟大的程序员,你必须使用的力量。以上是关于iOS 上 MonoTouch 中的多点触控的主要内容,如果未能解决你的问题,请参考以下文章