代码之家  ›  专栏  ›  技术社区  ›  You Speak So Well

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

  •  0
  • You Speak So Well  · 技术社区  · 7 年前

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

    enter image description here

    这是TableViewCell的一个子类,我使用堆栈视图对其进行布局。问题是,我想在不拉伸的情况下显示照片-我想让它们保持原始的纵横比,但人们可以上传任何尺寸的图像。您可以在屏幕截图中看到图像被压扁。

    我注意到上传的文件越大。jpeg文件中,细胞生长得越高(我猜图像大小决定了固有高度?),但由于宽度无法更改,因此每个图像的挤压方式不同。一张巨大的图片将显示为超高,但宽度相同。

    我尝试将图像设置为纵横比匹配,但只有可见图像本身可以满足我的要求:适合宽度,而不是扭曲纵横比。然而,UIImageView本身仍然很高,它将所有其他UI元素都推到了一边。

    我一定错过了什么。。。不应该这么难吧?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Shehata Gamal    7 年前

    要将图像约束为纵横比,请首先为其指定屏幕宽度,然后在IB中为其指定静态高度,并将该约束挂接为IBOutlet

    把它放在cellForRow里面

       cell.imageHeightcon.constant = imageRealHeight*imageWidthInIB/imageRealWidth
    
        2
  •  -1
  •   Tiago Couto    7 年前

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