我想在没有 PKToolPicker 的情况下使用 PKCanvasView 功能。 一旦我将 PKToolPicker 可见性设置为 false,PKCanvasView 就会绘制注释。
如何隐藏PKToolPicker并使用PKCanvasView?
这是我正在使用的代码:
struct DrawingView: View {
private var canvasView = PKCanvasView()
var body: some View {
MyCanvas(canvasView: canvasView)
}
}
struct MyCanvas: UIViewRepresentable {
var canvasView: PKCanvasView
let picker = PKToolPicker.init()
func makeUIView(context: Context) -> PKCanvasView {
self.canvasView.tool = PKInkingTool(.marker, color: .black, width: 1)
self.canvasView.becomeFirstResponder()
return canvasView
}
func updateUIView(_ uiView: PKCanvasView, context: Context) {
picker.addObserver(canvasView)
picker.setVisible(true, forFirstResponder: uiView)
DispatchQueue.main.async {
uiView.becomeFirstResponder()
}
}
}
最佳答案
如果您不使用PKToolPicker
,则必须指定绘图策略。
类似这样的事情:
func makeUIView(context: Context) -> PKCanvasView {
self.canvasView.tool = PKInkingTool(.marker, color: .black, width: 1)
self.canvasView.drawingPolicy = .anyInput // Specify the drawing policy
self.canvasView.becomeFirstResponder()
return canvasView
}
关于swift - 如何在没有 PKToolPicker 的情况下使用 PKCanvasView 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73798555/