【问题标题】:Distinguish between finger touch and Apple Pencil touch区分手指触控和 Apple Pencil 触控
【发布时间】:2019-04-16 17:06:17
【问题描述】:

我正在使用 SceneKit 在 iPad Pro 上渲染 3D 模型。我的要求是我希望在使用 Apple Pencil 时进行不同的交互。

有没有办法区分手指触摸和 Apple Pencil 触摸?

我尝试覆盖touchesBegan 函数并过滤Set 中的UITouch 以忽略pencil 类型的函数,但这似乎没有任何作用......

编辑:我对处理这两种不同类型的触摸更感兴趣(即当有手指触摸事件时,我想做一些动作 A。如果是铅笔,我想做动作 B)。我什至重写了哪些方法来实现这种隔离?

【问题讨论】:

标签: ios swift uikit uitouch apple-pencil


【解决方案1】:

检查的简单方法是 UITouch 对象将具有来自手写笔(例如 Apple Pencil)的附加信息。检查对象上是否存在此信息,以及是否存在 UITouch 对象来自触控笔。

有关更深入的信息,我已在开发人员文档中的 Apple Pencil 输入指南下方链接。

您能否提供代码,因为 UITouch 上的类型仍应正确报告?

https://developer.apple.com/documentation/uikit/pencil_interactions/handling_input_from_apple_pencil

【讨论】:

  • 嗨,我想我应该更好地措辞我的问题。如果触摸来自铅笔,你知道如何执行一些处理程序,如果是手指触摸,你知道如何执行一些其他不同的处理程序吗?
【解决方案2】:

关键是 UIGestureRecognizer 类。 “具体手势识别器的基类”说苹果文档

它有一个名为allowedTouchTypes 的属性,可以用来区分不同类型的触摸。

此属性是一个触摸类型数组,用于识别触摸是直接的还是间接的。有关所有可能的触摸类型的列表,请参阅 UITouch 中的 UITouch.TouchType 枚举。此属性的默认值包含所有触摸类型。

手势识别器通过在跟踪 Apple Pencil 触摸时将 allowedTouchTypes 属性设置为 UITouch.TouchType.pencil 以及在跟踪手指触摸时设置为 UITouch.TouchType.direct 来区分触摸类型。

另外,i've Found this one on the apple documentation。 本教程提供了帮助区分手指和 Apple Pencil 触控的辅助方法。 =>

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 2016-07-24
    • 2018-08-14
    • 2020-07-28
    • 1970-01-01
    • 2020-10-20
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多