问题
我正在尝试使用以下逻辑拦截对视图的触摸:
- 判断是否
UITouch.TouchType
是.pencil
- 如果没有
.pencil
,请通过触摸查看下方 - 否则
.pencil
,处理触摸。(UIGestureRecognizer
)
我的尝试
经过一些研究,我发现允许通过下面的视图处理触摸的方法是在需要时使用point(inside:with:)
并返回false
。
如果我想使用CGPoint
位置来确定布尔值,这很好,但在我的情况下,我需要访问它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)
}
}
}
因此,总而言之,如何根据用户是否使用苹果铅笔进行触摸将触摸传递到下面的视图?