根据 UITouch.TouchType 使用 point(inside:with:) 允许与后面的视图交互 (PKCanvasView) 问题我的尝试

问题描述

问题

我正在尝试使用以下逻辑拦截对视图的触摸:

  1. 确定 UITouch.TouchType 是否为 .pencil
  2. 如果不是 .pencil,请通过触摸查看下方
  3. 否则如果 .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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...