【问题标题】:Multitouch in MonoTouch on iOSiOS 上 MonoTouch 中的多点触控
【发布时间】:2012-04-03 00:06:26
【问题描述】:

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

我现在需要弄清楚的是如何在每个覆盖期间迭代触摸(会有多个)并匹配它们。我想知道触摸何时开始并对其进行操作而不是不同的触摸事件。用户可能会放下一根手指,此时如果该手指一直向下,我将启动一个计时器来做某事。

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

我很确定我可以找到一种方法来存储我的计时器等。我不知道如何遍历 NSSet 在每个覆盖中包含的触摸事件,然后如何在覆盖之间唯一地标识它们。

我假设 NSSet 中的 TouchesBegan 触摸将与这些覆盖获得的 NSSet 中的 TouchesMoved、TouchesCancelled 或 TouchesEnded 触摸匹配。

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

【问题讨论】:

    标签: ios xamarin.ios multi-touch


    【解决方案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。即使我放了更多手指。
    • 如果你想成为伟大的程序员,你必须使用的力量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多