当ContentMode = AspectFill时,在UIImageView中获取UImage的大小

时间:2017-04-13 18:35:37

标签: swift uiimageview core-graphics

我正在编辑带有核心图形的UIImage

UIImage内容模式设置为.aspectFill

当我在图像上绘图时,我想保持图像的比例/比例。

我尝试过以下代码,但它返回.aspectFit值而不是.AspectFill

let imageSize = AVMakeRect(aspectRatio: (mainImageView.image?.size)!, insideRect: mainImageView.frame)

非常感谢任何帮助

托马斯

1 个答案:

答案 0 :(得分:1)

该功能只能适合方面。

这是一个将进行方面填充的函数:

func makeFillRect(aspectRatio: CGSize, insideRect: CGRect) -> CGRect {
    let aspectRatioFraction = aspectRatio.width / aspectRatio.height
    let insideRectFraction = insideRect.size.width / insideRect.size.height
    let r: CGRect
    if (aspectRatioFraction > insideRectFraction) {
        let w = insideRect.size.height * aspectRatioFraction
        r = CGRect(x: (insideRect.size.width - w)/2, y: 0, width: w, height: insideRect.size.height)
    } else {
        let h = insideRect.size.width / aspectRatioFraction
        r = CGRect(x: 0, y: (insideRect.size.height - h)/2, width: insideRect.size.width, height: h)
    }
    return r
}