如何解决在 hitTest() 或 pointInside()
我通过在顶部创建透明视图并覆盖 hittest() 来实现 passthroughView。
passthroughView 应该消耗来自 Apple Pencil 的触摸,如果触摸类型不是来自铅笔,它会将触摸传递到下面的视图。
问题是:
- hitTest 中的参数“event”不包含触摸,因此我无法在 hitTest 中检查触摸类型
- 我可以从 touchesBegan 获取触摸并检查触摸类型,但只有在 hitTest 返回 true 后才会调用它
- 我继承了 UIWindow 并覆盖了 sendEvent() 但这个函数也在 hitTest 之后调用(我不知道为什么)
class WindowAbletoKNowTouchTypes: UIWindow {
override func sendEvent(_ event: UIEvent) {
if event.type == .touches {
// This get called after Hittest
if event.alltouches!.first!.type == .pencil {
print("This touch is from Apple Pencil")
}
}
super.sendEvent(event)
}
}
无论如何要检查 touchType 来决定传递还是消耗触摸?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。