首页 > 解决方案 > 为 PencilKit (iOS) 将橡皮擦类型设置为位图

问题描述

在 iOS 上使用 PencilKit,如何将橡皮擦工具设置为 .bitmap 用于 PKToolPicker?

我找不到 PKToolPicker 的任何设置。尝试使用 PKCanvasView 观察并将工具的擦除器类型设置为 .bitmap 也不起作用。

override func toolPickerSelectedToolDidChange(_ toolPicker: PKToolPicker) {
    var tool = toolPicker.selectedTool as? PKEraserTool

    if tool != nil {
        tool?.eraserType = .bitmap
    }
}

标签: ios13ipadospencilkitapple-pencil

解决方案


ThePKEraser是一个结构,因此当您更改它时eraserType,您实际上是在修改画布中正在使用的工具的副本。

您需要做的只是设置PKCanvasView tool属性,它会工作。

override func toolPickerSelectedToolDidChange(_ toolPicker: PKToolPicker) {
    var tool = toolPicker.selectedTool as? PKEraserTool

    if tool != nil {
        tool?.eraserType = .bitmap
    }

    // this line below will do the trick
    canvasView.tool = tool
}

让我知道它是否有效!


推荐阅读