问题标签 [pencilkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
122 浏览

ios - PencilKit 清除画布并不总是有效

我正在构建一个 PencilKit 应用程序来解释 canvasView.drawing 的大小。低于一定尺寸的图纸被解释为轻敲手势,并在解释过程中被清除。

实际上,我这样做是这样的:

在我的 2020 iPad Pro 上,这可以完美运行。然而,在其他 iPad 上,我观察到一个奇怪的行为:

在画布上绘制的一系列小斑点中,这些小斑点都应该立即被清除,有时画布似乎没有被清除,一个斑点仍然可见。在我在其他地方绘制下一个斑点之后,清除再次起作用,这意味着画布在内部被清空,可见状态不是最新的。

画布上的手指输入被禁用。画布工具设置为铅笔,宽度 5.0。

有谁知道这种行为的原因是什么?

0 投票
0 回答
52 浏览

swift - 如何以编程方式检测 Swift 中的 Apple Pencil 模型?

有没有一种方法可以使用 Swift 以编程方式检测 iPad 上使用的是哪种触控笔,例如第一代或第二代 Apple Pencil 或 Logitech Crayon?

我在文档中找不到任何内容,该信息可用吗?

0 投票
0 回答
191 浏览

swift - 绘图时如何获取苹果铅笔的值-pencilkit

我想在绘图时获得苹果铅笔的值(位置、力、方位角)。我用了一个铅笔套件。我的问题是如果我启用了 PKCanvasView 的用户交互。我可以画画,但我无法获得价值。但是,如果我禁用用户交互,我就无法绘制,但我可以获得值。我该如何解决?

在此处输入图像描述

0 投票
1 回答
133 浏览

swift - PKToolPicker 添加文本、形状和签名

在我的应用程序中使用 PencelKit 标记照片时,我没有任何添加文本、形状和签名的选项。此选项在 Apple 的照片应用程序中可用。我尝试使用 CanvasView 和 PKToolPicker 的各种属性来访问它,但没有成功。

0 投票
0 回答
69 浏览

ios - 可以从 PkCanvasView 中删除“在上方插入空间”选项吗?

我正在使用我的应用程序之一 PkCanvasView 进行绘图。当我使用套索工具进行选择并点击所选区域时,会出现菜单控制器,其中包含“剪切、复制、删除、复制、在上方插入空间”选项。根据我的应用程序要求,我想从菜单控制器中删除“在上方插入空间”。可行吗?

0 投票
0 回答
124 浏览

ios - 有没有办法扩大 PencilKit 中 Apple Pencil 绘图的可能宽度范围?

iPad 上的大多数高端绘图应用程序都提供了一种编辑 Apple Pencil 的“压力曲线”的方法,即增加多少压力会影响所创建线条的宽度。Apple 的PencilKit提供了具有压敏宽度的工具(例如,“笔”),但宽度在相对狭窄的范围内变化。

几个结构(例如,InkType)提供了一种设置“有效宽度范围”的方法,并且PKInkingTool允许指定墨水的宽度,但我似乎找不到调整单个有效宽度范围的方法中风。

据我所知,这是工具行为可配置性的限制

有没有办法创建自定义工具或以其他方式指定其他配置?理想情况下,我想创建一个等效的钢笔工具,允许大小线之间更平滑的变化。当前的工具在其对铅笔压力敏感性的利用方面似乎相当有限。

0 投票
0 回答
184 浏览

ios - 布局更改时如何正确调整 PKDrawing 的大小?

我正在尝试PKCanvasView在图像顶部分层,这与初始布局配合良好,但是当调整视图大小(通过旋转 iPad)时,PKDrawing内部没有缩放,导致图像注释位于不正确的位置。我正在努力弄清楚如何正确缩放PKDrawing以保留正确的位置。

显示我的初始绘图错位的示例

这是一个演示该问题的示例:

我想如果我可以计算转换,我就可以使用drawingView.drawing.transform(using: transformScale). 请问我该如何计算转换?

0 投票
0 回答
227 浏览

swift - 是否可以将自定义工具添加到 PKToolPicker?

例如,如果我使用 Notes 应用程序进行绘图,我可以看到有一个可用于手写的自定义工具。现在在我的情况下,我不想实现手写,但我需要一个自定义工具来绘制箭头等元素。简而言之,我需要一支可定制的铅笔,它可以让我检测触摸并通过阅读它们直接绘图。

现在,如果我阅读PKTool文档,它会说:

但是只有一组预定义的工具。是否可以像在 Notes 应用程序中那样实现我自己的工具?

在此处输入图像描述

0 投票
0 回答
194 浏览

ios - 将文本和图像添加到 PencilKit 画布

我正在尝试创建本机 iOS Notes 应用程序的克隆。我已经用 SwiftUI 设置了 PencilKit。我现在正在尝试将(键入的)文本添加到注释和背景图像/图案中。我还想将笔记序列化到文件中。

如何将多个背景图像和可编辑文本添加到 PencilKit Canvas aka UIScrollview 的背景?

0 投票
0 回答
41 浏览

ios - 允许根据 UITouch.TouchType 使用 point(inside:with:) 与后面的视图交互。(PKCanvasView)

问题

我正在尝试使用以下逻辑拦截对视图的触摸:

  1. 判断是否UITouch.TouchType.pencil
  2. 如果没有.pencil,请通过触摸查看下方
  3. 否则.pencil,处理触摸。( UIGestureRecognizer)

我的尝试

经过一些研究,我发现允许通过下面的视图处理触摸的方法是在需要时使用point(inside:with:)并返回false

如果我想使用CGPoint位置来确定布尔值,这很好,但在我的情况下,我需要访问它UITouch本身。

我尝试使用UIEvent传递给函数来访问与该事件关联的触摸,但这只会返回一个空的UITouch.


这是我用来实现这种方法的子类:


因此,总而言之,如何根据用户是否使用苹果铅笔进行触摸将触摸传递到下面的视图?