区分手指触摸和Apple Pencil触摸

时间:2019-04-16 17:06:17

标签: ios swift uikit uitouch apple-pencil

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

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

我尝试覆盖touchesBegan函数并过滤UITouch中的Set,以忽略类型为pencil的那些函数,但这似乎无济于事。 ..

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

2 个答案:

答案 0 :(得分:0)

一种简单的检查方法是UITouch对象将具有来自笔(例如Apple Pencil)的其他信息。检查此信息是否存在于对象上,以及UITouch对象是否来自笔。

要获取更深入的信息,我已链接到开发人员文档中的Apple Pencil输入指南下方。

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

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

答案 1 :(得分:0)

关键是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的笔触。 =>