Ios13 将铅笔盒(iOS)的橡皮擦类型设置为位图

Ios13 将铅笔盒(iOS)的橡皮擦类型设置为位图,ios13,ipados,pencilkit,apple-pencil,Ios13,Ipados,Pencilkit,Apple Pencil,使用PencilKit for iOS,如何为PKToolPicker将橡皮擦工具设置为.bitmap 我找不到PKToolPicker的任何设置。尝试使用PKCanvasView观察并将工具的橡皮擦类型设置为。位图也不起作用 override func toolPickerSelectedToolDidChange(_ toolPicker: PKToolPicker) { var tool = toolPicker.selectedTool as? PKEraserTool

使用PencilKit for iOS,如何为PKToolPicker将橡皮擦工具设置为.bitmap

我找不到PKToolPicker的任何设置。尝试使用PKCanvasView观察并将工具的橡皮擦类型设置为。位图也不起作用

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

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

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

只需设置
PKCanvasView
工具
属性,它就可以工作了

重写func toolPickerSelectedToolDidChange(toolPicker:PKToolPicker){
var tool=toolPicker.selectedTool as?PK橡皮擦工具
如果工具!=零{
工具?.橡皮擦类型=.bitmap
}
//下面这行就可以了
canvasView.tool=工具
}

让我知道它是否有效 适用于iOS 13和iOS 14

要将toolpicker的选定工具设置为位图擦除器(其中toolpicker是PKToolPicker),请执行以下操作:

要将画布视图的工具设置为位图擦除器(其中canvasView是PKCanvasView),请执行以下操作:

基于您的示例,此代码将保持toolpicker的擦除工具为位图(像素擦除器),即使选择了矢量(对象擦除器)。(在iOS 14上测试)


嗨,谢谢你的回复。I get:类型为“PK橡皮擦工具”的值与该附加语句的赋值中的“PKTool”不一致。
toolPicker?.selectedTool = PKEraserTool(.bitmap)
canvasView.tool = PKEraserTool(.bitmap)
func toolPickerSelectedToolDidChange(_ toolPicker: PKToolPicker) {

    if toolPicker.selectedTool is PKEraserTool {
        toolPicker.selectedTool = PKEraserTool(.bitmap)
    }
}