使用 iOS 版 PencilKit,如何将橡皮擦工具设置为 PKToolPicker 的 .bitmap?
我找不到 PKToolPicker 的任何设置。尝试使用PKCanvasView来观察并将工具的橡皮擦类型设置为.bitmap也不起作用。
override func toolPickerSelectedToolDidChange(_ toolPicker: PKToolPicker) {
var tool = toolPicker.selectedTool as? PKEraserTool
if tool != nil {
tool?.eraserType = .bitmap
}
}
PKEraser
是一个结构体,因此当您更改其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
}
让我知道它是否有效! 😊
適用於 iOS 13 和 iOS 14
要将工具选取器的选定工具设置为位图橡皮擦(其中 toolPicker 是 PKToolPicker(,请执行以下操作:
toolPicker?.selectedTool = PKEraserTool(.bitmap)
要将画布视图的工具设置为位图橡皮擦(其中画布视图是 PKCanvasView(,请执行以下操作:
canvasView.tool = PKEraserTool(.bitmap)
根据您的示例,此代码会将工具选取器的擦除工具保留为位图(像素橡皮擦(,即使选择了矢量(对象橡皮擦(。(在 iOS 14 上测试(
func toolPickerSelectedToolDidChange(_ toolPicker: PKToolPicker) {
if toolPicker.selectedTool is PKEraserTool {
toolPicker.selectedTool = PKEraserTool(.bitmap)
}
}