使UIImageView适合屏幕宽度但保持纵横比[swift]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使UIImageView适合屏幕宽度但保持纵横比[swift]相关的知识,希望对你有一定的参考价值。

我正在尝试使用tableView构建一个简单的tableview,其中显示了人们发布的图像列表以及他们的朋友添加的评论。

enter image description here

这是TableViewCell的子类,我使用堆栈视图来进行布局。问题是我想要显示照片而不拉伸它们 - 我希望它们保持原始的宽高比,但人们可以上传任何尺寸的图像。您在屏幕截图中看到图像被压扁。

我注意到,上传的.jpeg文件越大,单元格越大(我猜测图像大小决定了内在的高度?),但由于宽度不能改变,每张图像都被压缩得不同。一张巨幅照片将显示超高但宽度相同。

我尝试将图像设置为Aspect Fit,但只有可见图像本身才能达到我想要的效果:适合宽度而不会扭曲纵横比。但是,UIImageView本身仍然超级高,并且推动所有其他UI元素。

我必须在这里遗漏一些东西......它不应该那么难,是吗?

答案

要将图像约束为宽高比,首先给它屏幕宽度,然后在IB中给它一个静态高度并将该约束挂钩为IBOutlet

并将其设置在cellForRow中

   cell.imageHeightcon.constant = imageRealHeight*imageWidthInIB/imageRealWidth
另一答案

您应该根据需要修改图像视图的大小。然后你应该使用aspect来填充而不是aspect来适应并在属性检查中选择clip to bounds选项

以上是关于使UIImageView适合屏幕宽度但保持纵横比[swift]的主要内容,如果未能解决你的问题,请参考以下文章

布局约束将图像大小调整为屏幕宽度保持纵横比

使图像适应容器大小保持纵横比

具有自动布局和最大尺寸保持纵横比的 UIImageView

调整图像大小保持纵横比

ImageView 适合高度,自动缩放宽度,保持纵横比

使用“Vstack”将图像大小调整为屏幕宽度,同时保持纵横比