如何在UIScrollView中设置一个空的UIStackView,以便我可以在运行时填充它?

时间:2019-04-23 18:48:14

标签: ios xcode uiscrollview autolayout uistackview

我正在尝试在UIScrollView中设置一个空的垂直UIStackView,以便可以在运行时动态填充UIStackView

我尝试了苹果here给出的解决方案,但是当我这样做时,“自动布局”工具告诉我,缺少一个约束,即Y位置或UIStackView的高度。 我的UIScrollView与示例中的唯一区别是,我没有在UIStackView内添加按钮。

当我在运行时填充UIStackView时,日志显示它必须打破一些约束,然后UIScrollView会一直将屏幕填充到底部,从而使我在那里看到的其他视图不可见。

这是完成我想要的事情的正确方法吗?还是有其他解决方案?

编辑:

这就是我所拥有的,徽标约束只是相对于自身的长宽比

Current status

1 个答案:

答案 0 :(得分:2)

根据需要设置约束,但是在滚动视图中 没有 使用空堆栈视图。

下一步:

  • 在滚动视图中添加UIStackView
  • 将堆栈视图的所有4面约束为滚动视图
  • 将堆栈视图宽度限制为等于滚动视图宽度
  • 将堆栈视图的高度限制为等于滚动视图的高度

IB应该显示所有满足的约束条件。

然后-这是关键-编辑堆栈视图的 Height 约束并将其设置为占位符:

enter image description here

现在将在构建时删除此高度约束。通过代码添加为arrangedSubviews的任何元素都将确定堆栈视图的高度,堆栈视图的高度又将定义垂直可滚动区域(.contentSize),所有这些都由自动布局处理。