1

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

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

4

1 回答 1

1

我通过使用该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)
    }
}
于 2021-12-13T23:58:31.790 回答