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

Make UIImageView fit width of screen but keep aspect ratio [swift]

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

这是TableViewCell的子类,我用stack views来布局。问题是我想在不拉伸照片的情况下显示它们——我希望它们保持原来的纵横比,但人们可以上传任何尺寸的图像。您在屏幕截图中看到图像被压扁了。

我注意到上传的 .jpeg 文件越大,单元格长得越高(我猜图像大小决定了固有高度?),但由于宽度不能改变,每个图像被不同地压扁。一张大图会显得超高但宽度一样

我尝试将图像设置为“Aspect Fit”,但只有可见图像本身符合我的要求:适合宽度而不扭曲纵横比。但是,UIImageView 本身仍然非常高,将所有其他 UI 元素推开。

我一定是漏掉了一些东西...应该不会那么难吧?

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

并将其设置在 cellForRow

   cell.imageHeightcon.constant = imageRealHeight*imageWidthInIB/imageRealWidth

您应该根据需要固定图像视图的大小。然后你应该使用 aspect to fill 而不是 aspect to fit 和 select 属性检查中的选项 clip to bounds