在UIStackView

时间:2018-05-17 08:21:07

标签: ios swift uiimageview autolayout uistackview

前一段时间我觉得用UIStackView替换滚动视图中的多个视图可能是个好主意。 但经过一个多星期的挫折之后,我一直在寻求帮助: 我想放置这样的子视图:

在垂直UIStackView内(对齐填充,分布填充)。 UIImageView的内容模式是方面填充,图像在运行时设置,可以在运行时更改(尤其是其方面)。 我希望子视图能够水平填充堆栈视图并垂直调整大小以保持图像的宽高比不变。

当我没有添加任何特殊约束时,我没有获得布局警告,但是当我更改图像时,我的堆栈视图中的子视图不会调整大小。 如果我每次设置图像时都向UIImageView添加一个方面约束,我会在第一次更改图像时收到布局警告,之后它不会调整子视图的大小。

有人可以自动布局向导请帮帮我吗?

1 个答案:

答案 0 :(得分:1)

您无法根据稍后加载的图片在ImageView上设置约束。你应该做的是

  • ImageView
  • 上设置高度限制
  • IBOutlet连接到此约束
  • 加载图像时,找出它的宽高比
  • 计算所需的高度,因为您已经知道宽度 (stackView的宽度)
  • 将此高度设置为ImageView的高度限制