问题标签 [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 投票
1 回答
103 浏览

ios - PencilKit 的 Xcode 项目的 .drawing 扩展文件?

如何制作自己的 .drawing 文件以将其导入 Xcode 以从此文件中获取绘图并分配给 PKDrawing 然后在 PKCanvas 视图中绘制它?我探索了 WWDC2020 PencilKit 演示项目,他们还使用小写和大写字母的 .drawing 文件在 Canvas 视图上绘制它们。谢谢

https://developer.apple.com/videos/play/wwdc2020/10148/

0 投票
0 回答
152 浏览

swift - 如何在屏幕旋转时重新缩放 SwiftUI 中的 PKDrawing?

我目前正在制作一个使用 PencilKit 和 SwiftUI 的应用程序。如果屏幕旋转,画布(和绘图)应该相应地重新缩放。我使用几何阅读器执行此操作并计算大小。

然而,绘图没有缩放。
我的解决方案是创建一个以布尔值作为参数的占位符视图。也是一种使用 Canvas 的高度作为输入来缩放绘图的方法。
这行得通,但我认为它很老套,不是最好的解决方案,但这是唯一有效的解决方案。
有一个更好的方法吗?我错过了什么?

0 投票
0 回答
112 浏览

ios - 设置 PKCanvasView 在图像上绘制并保存

情况

在我的 iOS 应用程序中,我有一个功能,我可以拍照然后在上面画画。我目前使用一个旧Cocoapods图书馆,我想切换到PencilKit.

问题

文档和在线教程对过程/结果非常不清楚。框架是否支持在图像上绘图?很多 SO 帖子都说要以透明的方式将图像放在背景中PKCanvasView。这似乎有点骇人听闻。它会支持裁剪图像吗?

我想要的是

我的目标是实现与截屏时类似的效果。您可以裁剪和绘制的图像。截图后的 UI 是否基于PencilKit? 我怎样才能做到这一点?

0 投票
0 回答
51 浏览

swift - 使用 PencilKit 绘图 - toolPicker 没有响应

我的 toolPicker 有问题。当我选择一个工具或颜色没有改变但是当我在代码中这样做时一切正常

// canvas.tool = PKInkingTool(.marker, color: .black, width: 50) }

}

0 投票
0 回答
297 浏览

ios - 在 WKWebView 之上覆盖 PKCanvasView

我正在尝试将 Apple Pencil 与 WKWebView 集成。

期望的行为:

  • 使用铅笔可以让您在网页上绘制所有精美的 PencilKit 集成(PKToolPicker 等)
  • 使用手指可以滚动浏览网页,并且滚动会同步到 webview。

取 2

因此,在花费了更多时间之后,我得出了一个非常hacky的解决方案,我实际上并不喜欢这个解决方案:

  • 在它上面创建一个WKWebView和一个透明PKCanvasView的。
  • 覆盖hitTest`PKCanvasView 以始终返回 nil。
  • drawingGestureRecognizer将 PKCanvasView添加到WKWebView
  • 确保drawingGestureRecognizer.allowedTouchTypes = [NSNumber(value: UITouch.TouchType.pencil.rawValue)]PKCanvasView

这种方法有效,但它消除了实施的大量灵活性。

拿 1

到目前为止,我尝试了两种方法:

  • 当我检测到它来自手指时,选择性地取消画布上的用户输入。这不起作用,因为在视图消耗事件之前我无法检测到这一点。

  • 创建一个透明的超级视图,并在我进行检测时为 PKCanvasView 和 WKWebView 手动调用 touchesBegan/touchesMoved/touchesEnded。不幸的是,这也不起作用,因为调用这些方法没有做任何事情。

这是我到目前为止的一些基本代码:

0 投票
0 回答
75 浏览

swift - 如何设置 PKCanvasView 在图像上绘制并保存

在我的 iOS 应用程序中,我有一个功能,我可以拍照然后在上面画画。

可以同时保存两张图片吗

0 投票
0 回答
69 浏览

swift - 如何在调用 canvasViewDidEndUsingTool 之前修改 PKStrokes?

当用户在笔画结束时将铅笔放在一个地方时,我想实现一些东西来拉直线条,但是在他们从 iPad 上释放铅笔之前,我无法访问 PKStrokes 进行修改。苹果在他们的应用程序中的版本改变了铅笔被抬起之前的笔触。我试过实现一个长按手势识别器,但似乎没有被调用。

有没有人成功地做到了这一点?我可能遗漏了一些非常简单的东西,但似乎 canvasView 正在拦截所有内容。

谢谢!

0 投票
1 回答
506 浏览

swiftui - 当视图在 SwiftUI 中消失时如何关闭 PKToolPicker?

我正在尝试将其包装PKCanvasView为一个名为CanvasView. 我希望能够在另一个视图之上切换整个画布。当CanvasView出现时,我希望PKToolPicker出现。当它消失时,我希望它PKToolPicker消失。

我在这里找到了一些类似的方法,但它们只涉及显示选择器或使用按钮切换选择器;我希望选择器可见性与视图可见性相关联。

在下面的示例中,您可以看到您可以切换画布,但是一旦工具选择器可见,它就会保持可见。

这是我的CanvasView

还有一个例子ContentView

任何指导将不胜感激!

0 投票
2 回答
581 浏览

ios - 我可以将 CoreML 和 PencilKit 等苹果库与 react-native 应用程序一起使用吗?

我真的很想在我的 react-native 应用程序中使用铅笔套件。我只想知道我能不能做到。如果是,那么如何?

0 投票
1 回答
167 浏览

swift - 如何确定 PKDrawing 是否为空白?

PencilKit在我的应用程序中使用并让我的用户在PKCanvasView. 但我不希望他们能够保存空白图纸。所以我需要检查是否PKDrawing为空白(除了透明像素之外不包含任何内容)。我在官方文档中找不到任何具体的方法。

我尝试将其转换PKDrawingData并检查它是否为空,但即使图纸为空白,情况也并非如此。

有没有一种方便的方法来检查PKDrawingorPKCanvasView是否为空?

或者,有没有办法检查是否UIImage只包含透明像素?