【发布时间】:2020-12-03 10:01:50
【问题描述】:
我正在学习 PencilKit。
我有一个画布,我想设置一个我们可以在上面绘制的背景图像。
当我保存画布时,我希望我的背景图片可见
但我有一个错误: 无法将“Image”类型的值转换为预期的参数类型“UIImage?”
Image("badmintoncourt") 是我资产中的图像 我不知道如何解决它,但我可能没有以正确的方式将背景图像添加到我的画布
struct Home : View {
@State var canvas = PKCanvasView()
@Environment(\.undoManager) private var undoManager
@State var showingAlert = false
var body: some View{
NavigationView{
MyCanvas(canvasView: canvas)
.navigationTitle("Drawing")
.navigationBarTitleDisplayMode(.inline)
}
}
}
struct MyCanvas: UIViewRepresentable {
var canvasView: PKCanvasView
let picker = PKToolPicker.init()
func makeUIView(context: Context) -> PKCanvasView {
self.canvasView.tool = PKInkingTool(.pen, color: .black, width: 15)
self.canvasView.isOpaque = false
self.canvasView.backgroundColor = UIColor.clear
self.canvasView.becomeFirstResponder()
let imageView = Image("badmintoncourt")
let subView = self.canvasView.subviews[0]
subView.addSubview(imageView)
subView.sendSubviewToBack(imageView)
return canvasView
}
func updateUIView(_ uiView: PKCanvasView, context: Context) {
picker.addObserver(canvasView)
picker.setVisible(true, forFirstResponder: uiView)
DispatchQueue.main.async {
uiView.becomeFirstResponder()
}
}
}
编辑: 这是我保存图像的代码:
func SaveImage(){
let image = canvas.drawing.image(from: canvas.drawing.bounds, scale: 1)
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
}
【问题讨论】:
标签: swiftui background-image pencilkit