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

How to set an empty UIStackView inside a UIScrollView so that i can fill it on runtime?

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

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

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

这是实现我想要的目标的正确方法吗?或者还有其他解决办法吗?

编辑:

这是我的,标志约束只是相对于自身的纵横比

设置约束,但没有滚动视图中的空堆栈视图。

下一个:

  • 向滚动视图添加一个UIStackView
  • 将堆栈视图的所有 4 个边限制为滚动视图
  • 限制堆栈视图宽度等于滚动视图宽度
  • 限制堆栈视图高度等于滚动视图高度

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

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

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