AutoLayout – 保持图像水平约束的比例(Swift Xcode 6)

我一直在试图实现图片的时间轴(如Instagram或Facebook)。 但是,我一直在努力与图像的比例。

这是我的xib包含我的单元格: 在这里输入图像说明

我希望图片保持其比例,并完全填充单元格的宽度。 我已经在UIImageView上设置了4个自动布局约束,水平约束为0-0,顶部/底部约束为5-5。 我也将ViewMode设置为“Aspect Fit”。

我试过不同的设置:

  1. 将UIImageView的高度设置为特定值: – >修改图像的宽度以保持图像比例
  2. 不要设置UIImageView的高度 – >它认为高度等于0,因此甚至不显示图像
  3. 设置高度大于或等于特定值: – >与1相同的行为(图像宽度被修改以保持图像比例)

我从URL加载图像,所以我一直在使用lib Haneke( https://github.com/Haneke/HanekeSwift )与以下函数:imageView.hnk_setImageFromURL(url)。

它有一个图像自动resize,我不知道如何获得图像的原始宽度/高度手动设置高度。

再次,我想要的是图片保持其比例,并完全填满单元格的宽度。

任何人有一个build议?

非常感谢 !

这是我想出的设置。 这是一个快速和肮脏的演示,但我会假设你想图像总是居中。 您可以在故事板中设置水平和垂直居中约束,以始终保持居中如果您希望它始终完全填充视图,您可以用Equal WidthreplaceEqual Height ,但是通过这样做,imageView将在某些尺寸因为宽高比的限制

自动设置

我还包括了不同大小的视图截图

任何

肖像

景观