获取 PencilKit 中 PKDrawing/单个笔画的边界

Get bounds of PKDrawing / individual strokes in PencilKit

我需要访问 PencilKit 中 PKDrawing 的各个笔画的坐标。有什么办法可以访问它吗?目前,我唯一的想法是尝试解码我​​们从 PKDrawing 获得的不透明数据表示。

我一直在寻找同样的东西,从这条评论 和我自己对文档的搜索来看,您所要求的似乎不存在。如果您确实发现了一种解码不透明数据的方法,请更新此线程的方法。

如果您不一定要使用 PencilKit,您可以手动编写绘图函数的代码,这比听起来容易。在本教程中:https://youtu.be/E2NTCmEsdSE?t=504 我在他显示他有权访问他正在创建的线上的所有点的位置添加了时间戳。

另一种可能的解决方案是同时使用两者,方法是在您的 PencilKit 绘图与本教程中的技术中找到的点之间建立映射。

正如 Ben 所说,目前似乎没有任何方法可以访问 PencilKit 中的笔划级数据。这似乎是一个非常基本的功能,所以希望 Apple 会在下一次 WWDC 中添加它。手指交叉。

如果您只需要基本的绘图功能并且不太关心绘图质量或延迟,那么 LetsBuildThatApp 的 YouTube 教程是一个很好的起点。我 运行 在尝试添加随笔压改变笔划宽度的功能时遇到了问题。我从来没能让它在不同宽度的笔画段之间平滑地过渡到 t运行——它总是从一个宽度到下一个宽度 'jumped' 不和谐。也许有办法解决这个问题,但我做不到。

我怀疑目前,用 Apple Pencil 绘制低延迟高质量图像的唯一方法是在 Metal 或 OpenCL 中从头开始编写绘图引擎。令人惊讶的是,自从 Apple Pencil 发布以来,Apple 花了这么长时间才推出了一个全面的绘图框架。祝 WWDC 2020 有所改变。

编辑:Apple 在 WWDC20 上宣布了对 PencilKit 的重大更新,包括访问笔画数据和以编程方式绘制笔画的功能。

对于笔画,您可以访问 属性 .renderBounds,它为您提供笔画所在矩形的尺寸。