填充imageview的宽度而不拉伸图像

时间:2018-08-14 09:29:02

标签: ios swift

我有一个imageview,其中图像填充了宽度和高度,而没有拉伸图像..宽度始终相同..但是高度根据图像的高度而变化...

我尝试了scaleToFill并得到了拉伸图像:

enter image description here

也尝试scaleToAspectFit并得到了以下内容:

enter image description here

如何填充图像视图的宽度并更改其高度,以使其不会被拉伸?

当我尝试使用背景清晰的scaleToAspectFill时,我会得到这个信息:

enter image description here

我想要的是填充imageview的宽度并更改其高度,以便它不会被拉伸..类似这样的东西:

enter image description here

3 个答案:

答案 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一起使用 它将解决您的问题。