缩放 PencilKit 绘图以适合 Canvas 大小

Scale PencilKit Drawing to Fit Canvas size

我的 IOS 应用程序中有一个 PKCanvasView。当用户输入绘图时,它会将笔画保存为 PKDrawing。可以在具有不同屏幕尺寸的许多不同设备上访问此绘图。然而,当在较大设备(例如iPad)上创建的绘图在较小设备(例如iPhone)上查看时,绘图从右下角被截断。此外,当在较小设备上创建的绘图在较大设备上查看时,它不会填满 space 而是被限制在右上角。

我的问题: 有什么方法可以放大或缩小 PKDrawing 以适应 PKCanvasView 的框架?

我通过使用 transform 函数放大或缩小绘图以适应屏幕尺寸来修复它。我做了一个扩展:

extension PKDrawing {
    mutating func scale(in frame: CGRect) {
        var scaleFactor:CGFloat = 0
        
        if self.bounds.width != frame.width {
            scaleFactor = frame.width / self.bounds.width
        } else if self.bounds.height != frame.height {
            scaleFactor = frame.height / self.bounds.height
        }
        
        let trasform = CGAffineTransform(scaleX: scaleFactor, y: scaleFactor)
        
        self.transform(using: trasform)
    }
}