As I am quite new to SwiftUI Programming I want to ask what the best way is to paste an Image into a PKCanvasView.
I do not expect to get any code but maybe some directions what are possible ways to achieve my goal. Unfortunately the only tutorials I find are setting the image as a background image to draw on it. I however do not want to have a full screen image, but an image that can be placed and resized depending on the users need.
I am using PencilKit in Swift UI with a DrawingWrapper:
struct DrawingWrapper: UIViewControllerRepresentable {
typealias UIViewControllerType = DrawingViewController
var manager: API
func makeUIViewController(context: Context) -> DrawingViewController {
let viewController = DrawingViewController()
viewController.drawingData = manager.getData()
viewController.drawingChanged = { data in
manager.updateDrawingData(data: data)
let canvas = viewController.canvas
manager.updateImage(image: canvas.drawing.image(from: canvas.bounds, scale: 1.0))
}
return viewController
}
func updateUIViewController(_ uiViewController: DrawingViewController, context: Context) {
uiViewController.drawingData = manager.getData()
}
}
My DrawingViewController looks like this:
class DrawingViewController: UIViewController {
lazy var canvas: PKCanvasView = {
let v = PKCanvasView()
v.drawingPolicy = .pencilOnly
v.minimumZoomScale = 1
v.maximumZoomScale = 2
v.translatesAutoresizingMaskIntoConstraints = false
return v
}()
lazy var toolPicker: PKToolPicker = {
let toolPicker = PKToolPicker()
toolPicker.addObserver(self)
return toolPicker
}()
var drawingData = Data()
var drawingChanged: (Data) -> Void = { _ in }