我正在使用SceneKit在iPad Pro上渲染3D模型。我的要求是,在使用Apple Pencil时我想执行不同的交互。
有没有办法区分手指触摸和Apple Pencil触摸?
我尝试覆盖touchesBegan
函数并过滤UITouch
中的Set
,以忽略类型为pencil
的那些函数,但这似乎无济于事。 ..
编辑:我对处理这两种不同类型的触摸更感兴趣(即,当发生手指触摸事件时,我想执行一些操作A。如果是铅笔,我想执行操作B)。我什至可以重写哪些方法来实现这种隔离?
答案 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的笔触。 =>