如何解决根据 UITouch.TouchType 使用 point(inside:with:) 允许与后面的视图交互 (PKCanvasView) 问题我的尝试
问题
我正在尝试使用以下逻辑拦截对视图的触摸:
- 确定
UITouch.TouchType
是否为.pencil
- 如果不是
.pencil
,请通过触摸查看下方 - 否则如果
.pencil
,处理触摸。 (UIGestureRecognizer
)
我的尝试
经过一些研究,我发现允许触摸由下面的视图处理的方法是使用 point(inside:with:)
并在需要时返回 false
。
如果我想使用 CGPoint
位置来确定 Bool,这很好,但在我的情况下,我需要访问 UITouch
本身。
我尝试使用传递给函数的 UIEvent
来访问与该事件关联的触摸,但这只会返回一个空的 UITouch
集。
这是我用来实现这种方法的子类:
class ThroughtouchesPKCanvasView: PKCanvasView {
override func point(inside point: CGPoint,with event: UIEvent?) -> Bool {
print("Override point")
if let event = event{
print(event.alltouches) //prints: Optional(Set([]))
return super.point(inside: point,with: event)
} else {
return super.point(inside: point,with: event)
}
}
}
所以,总而言之,根据用户是否使用 Apple Pencil 进行触摸,我如何将触摸传递到下面的视图?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。