Im currently making an app usig PencilKit and SwiftUI. If the screen is rotated, the canvas (and the drawing) should be rescaled acordingly. I do this with the Geometry reader and calculating the size.
    NavigationView {
                GeometryReader { g in
                   HStack {
                    CanvasView(canvasView: $canvasView)
                        .frame(width: g.size.width/1.5, height: (g.size.width/1.5)/1.5)
                    placeholder(placeholder: scaleDrawing(canvasHeight: (g.size.width/1.5)/1.5))
                   }
                 }
    }
func scaleDrawing(canvasHeight : CGFloat) ->  Bool {
    
    let factor = canvasHeight / lastCanvasHeight
    let transform = CGAffineTransform(scaleX: factor, y: factor)
    
    canvasView.drawing = canvasView.drawing.transformed(using: transform)
    
    lastCanvasHeight = canvasHeight
    return true
}
The drawing however gets not scaled. 
My solution was to create a placeholder view which has a boolean as a parameter. Also a method that scales the drawing with the height of the Canvas as an input. 
This works but i think its pretty hacky and not the best solution, but this was the only solution that worked.  
Is there a better way to do this? What am i missing?
