获取自定义UIView以响应两指触控板的滚动手势(或鼠标滚轮)

问题描述 投票:0回答:1

我有一个iPad应用程序(C#),带有一个自定义UIView,该UIView允许通过触摸和Apple Pencil手写笔触摸进行输入。我正在尝试集成对触控板/鼠标的间接支持(如Apple所说的光标或“指针”)。

我使用HoverGestureRecognizer使悬停工作。我使用正常的触摸Began / Moved / Ended / Cancelled事件进行了右键单击和控制单击,并检查.type == .indirectPointer,然后检查是否设置了event.ModifierFlags中的控制键修饰符,或者是否设置了event.ButtonMask ==次要。

我花了很多时间在Apple Developer网站上搜索文档,从这里开始并扩展:

某种程度上,当发生两指触控板滚动(或鼠标滚动滚轮滚动)]时,我无法找到系统在我的代码中调用的API。> (在另一个视图上是滚动视图,当我进行两指滚动时,可以获取scrollview的滚动事件,因为这是iPadOS 13.4+内置的滚动视图,但是我的自定义视图不是滚动视图,它里面有一些可滚动区域。]

我尝试过的事情:

  • UISwipeGestureRecognizer。两指触控板滚动手势没有要求。
  • UIPanGestureRecognizer。没事。
  • 子类化UIScrollView并添加一个UIScrollViewDelegate,只是看它是否可以工作...什么都没有。
  • 将GestureRecognizer子类化并添加,然后覆盖ShouldReceive(UIEvent evt),但从未调用过。
  • iPadOS 13.4+将触控板的两指滚动手势转换为什么?我可以将其作为某种事件吗?

文档linked above简直令人失望,但它提到了UIEvent.EventType.scroll,但没有提到系统将如何,何时或在何处调用我的任何方法并带有该事件类型。真是气死我了他们应该更清楚地说明这一点。

欢迎使用Swift或C#回答。

我有一个iPad应用程序(C#),带有一个自定义UIView,该UIView允许通过触摸和Apple Pencil手写笔触摸进行输入。我正在尝试集成对触控板/鼠标间接(光标或Apple指针)的支持...

gesture trackpad ipados
1个回答
0
投票

[好吧,奇怪的是,我以为我尝试了PanGestureRecognizer,但是我一定把它设置错了。苹果公司的示例代码项目Integrating Pointer Interactions into Your iPad App有答案(C#代码):

© www.soinside.com 2019 - 2024. All rights reserved.