Jar*_*ike 6 trackpad gesture ipados
我有一个带有自定义 UIView 的 iPad 应用程序(在 C# 中),它允许通过触摸和 Apple Pencil 手写笔触摸进行输入。我正在尝试集成对触控板/鼠标间接支持(光标,或 Apple 所说的“指针”)。
我使用 HoverGestureRecognizer 悬停工作。我使用正常的触摸开始/移动/结束/取消事件进行了右键单击和控制单击工作并检查 .type == .indirectPointer 然后检查是否设置了 event.ModifierFlags 中的控制键修饰符,或者是否设置了 event.ButtonMask == 次要的。
我花了很多时间在 Apple Developer 网站上搜索文档,从这里开始并扩展:
不知何故,当发生两指触控板滚动(或鼠标滚轮滚动)时,我无法在我的代码中找到系统调用的 API 。(在另一个滚动视图视图上,当我执行两指滚动时,我可以获得滚动视图的滚动事件,因为这是 iPadOS 13.4+ 内置的滚动视图,但我的自定义视图不是滚动视图,它里面只有一些可滚动的区域。)
我尝试过的事情:
iPadOS 13.4+ 将触控板双指滚动手势转换成什么?我可以把它当作某种事件吗?上面链接的文档是非常令人失望的准系统,但它提到了 UIEvent.EventType.scroll 但没有提到系统将如何、何时或何地使用该类型的事件调用我的任何方法。真气人。他们应该更清楚地说明这一点。
欢迎使用 Swift 或 C# 回答。
好吧,奇怪的是我以为我尝试了 PanGestureRecognizer,但我一定是设置错了。Apple 的示例代码项目,将指针交互集成到你的 iPad 应用程序中有答案(C# 代码):
panRecognizer = new UIPanGestureRecognizer(() => {
Console.WriteLine("panned -- " + panRecognizer.VelocityInView(this));
});
panRecognizer.AllowedScrollTypesMask = UIScrollTypeMask.Continuous;
AddGestureRecognizer(panRecognizer);
Run Code Online (Sandbox Code Playgroud)
很高兴我发现了这一点!
| 归档时间: |
|
| 查看次数: |
507 次 |
| 最近记录: |