我需要访问 PencilKit 中 PKDrawing 的各个笔画的坐标。有什么办法可以访问它吗?目前,我唯一的想法是尝试解码我们从 PKDrawing 获得的不透明数据表示。
2 回答
我一直在寻找同样的东西,从这条评论https://stackoverflow.com/a/57565661/8891611和我自己对文档的搜索中,看来你所要求的并不存在。如果您确实发现了一种解码不透明数据的方法,请更新此线程以了解如何。
如果您不一定使用 PencilKit,您可以手动编写绘图功能,这比听起来容易。在本教程中:https ://youtu.be/E2NTCmEsdSE?t=504我已经标记了他表明他可以访问他正在创建的线上的所有点的地方。
另一个可能的解决方案是同时使用这两种方法,通过在 PencilKit 绘图和本教程中的技术中找到的点之间建立映射。
正如 Ben 所说,目前似乎没有任何方法可以访问 PencilKit 中的笔画级别数据。这似乎是一个非常基本的功能,因此希望 Apple 会在下一次 WWDC 上添加它。手指交叉。
如果您只需要基本的绘图功能并且不太关心绘图质量或延迟,LetsBuildThatApp 的 YouTube 教程是一个很好的起点。当我尝试添加通过笔压改变笔画宽度的功能时遇到了问题。我永远无法让它在不同宽度的笔划段之间平滑过渡——它总是从一个宽度“跳跃”到另一个宽度。也许有办法解决这个问题,但我无法做到。
我怀疑目前,使用 Apple Pencil 绘制低延迟高质量图像的唯一方法是在 Metal 或 OpenCL 中从头开始编写绘图引擎。奇怪的是,自 Apple Pencil 发布以来,Apple 花了这么长时间才推出了一个全面的绘图框架。在 WWDC 2020 上,手指越过了这种变化。
编辑:Apple 在 WWDC20 上宣布对 PencilKit 进行重大更新,包括访问笔画数据和以编程方式绘制笔画的功能。