2

我正在尝试使用 PencilKit,但我无法在应用程序中绘制任何内容。我将我的代码设置如下。

import UIKit
import PencilKit

class DrawingViewController: UIViewController {

  var canvasView: PKCanvasView!

  override func viewDidLoad() {
    super.viewDidLoad()

    let canvasView = PKCanvasView(frame: view.bounds)
    canvasView.allowsFingerDrawing = false
    view.addSubview(canvasView)

    canvasView.translatesAutoresizingMaskIntoConstraints = false
    canvasView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
    canvasView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
    canvasView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
    canvasView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true

    canvasView.backgroundColor = UIColor.lightGray
    canvasView.tool = PKInkingTool(.pen, color: .black, width: 10)
  }

}

我期待在 canvasView 中绘制/墨迹书写,但是当我尝试应用程序时没有响应。我的设备在 13.2 中运行,所以目标没有问题。我还从 WWDC 2019会议下载了 Apple 的应用程序,但它在模拟器中不起作用。为了澄清起见,我还在真实设备中对其进行了测试,但在任何使用PencilKit的应用程序中都没有响应。

4

1 回答 1

4

如果使用手指或鼠标而不是 Apple Pencil 作为输入,canvasView.allowsFingerDrawing = false则可能是问题所在。如果尝试这种组合,Apple Pencil 目前不适用于 iPhone。否则代码看起来很好。


这些是使用 PencilKit 绘图的 iOS 设置

iOS 14

使用 drawingPolicy 设置启用按输入类型绘制

仅限苹果铅笔:

canvasView.drawingPolicy = .pencilOnly

手指、鼠标光标(iOS 模拟器)和 Apple Pencil:

canvasView.drawingPolicy = .anyInput

允许用户使用 Pencil Kit 的工具选择器切换设置所需的输入:

canvasView.drawingPolicy = .default

在设置应用程序中有一个名为“仅使用 Apple Pencil 绘图”的全局设置。这可以从UIPencilInteraction.prefersPencilOnlyDrawingPencilKit 中读取。


iOS 13(在 iOS14 中已弃用)

仅使用 Apple Pencil 绘图:

canvasView.allowsFingerDrawing = false

使用所有输入类型进行绘制:

canvasView.allowsFingerDrawing = true
于 2020-06-25T02:59:19.393 回答