我有一个imageview,其中图像填充了宽度和高度,而没有拉伸图像..宽度始终相同..但是高度根据图像的高度而变化...
我尝试了scaleToFill
并得到了拉伸图像:
也尝试scaleToAspectFit
并得到了以下内容:
如何填充图像视图的宽度并更改其高度,以使其不会被拉伸?
当我尝试使用背景清晰的scaleToAspectFill
时,我会得到这个信息:
我想要的是填充imageview的宽度并更改其高度,以便它不会被拉伸..类似这样的东西:
答案 0 :(得分:0)
您要使用scaleToAspectFill
。
更多详细信息:
用于缩放内容以填充视图大小的选项。内容的某些部分可能会被裁剪以填充视图的边界。
来自https://developer.apple.com/documentation/uikit/uiview/contentmode
在OP发表评论之后:您可能希望将backgroundColor
中的UIImageView
设置为clear
。然后您的图像(带有scaleToAspectFit
)将可见,而无需附加框架。
答案 1 :(得分:0)
确定,因此,根据您的问题的更新,您需要使用
imageView.contentMode = scaleToAspectFill
并调整imageView的高度
您可以通过获取图像大小并计算高宽比来实现。然后,您可以调整imageView的约束条件...
if let imageSize = imageView.image?.size {
let ratio = imageSize.height / imageSize.width
imageView.heightAnchor.constraint(equalTo: imageView.widthAnchor, multiplier: ratio).isActive = true
}
答案 2 :(得分:-1)
将scaleToFill contentMode与clipToBounds = true一起使用 它将解决您的问题。