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