iOS PencilKit 不绘图

iOS PencilKit not drawing

我正在尝试使用 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的运行所以目标没有问题。我还下载了 Apple's app from WWDC 2019 会话,但它在模拟器中不起作用。 为澄清起见,我还在真实设备中对其进行了测试,但在使用 PencilKit 的任何应用程序中均未响应。

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


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

iOS 14

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

仅限 Apple pencil:

canvasView.drawingPolicy = .pencilOnly

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

canvasView.drawingPolicy = .anyInput

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

canvasView.drawingPolicy = .default

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


iOS 13(在 iOS14 中弃用)

仅使用 Apple pencil 绘图:

canvasView.allowsFingerDrawing = false

要使用所有输入类型绘图:

canvasView.allowsFingerDrawing = true