动态调整大小的 stackView 以减少内容

Dynamically sized stackView for less content

我有 自定义 XIB,我将使用它在运行时创建我的 ViewController。 ViewController 中包含哪些 XIB 将在运行时决定。

我为此目的使用了 stackView,我已将其添加到情节提要中并将其限制为 [=11] 的 leading-triling-top-bottom =].这意味着 stackView 将被拉伸到 viewController.

的高度

现在当我有几个自定义视图(或 XIB)时,比如说 3,它不应该覆盖整个屏幕,而是坚持它的大小并添加到 stackView

但我的问题出现在这里:因为我已经限制了 stackView 来完成屏幕(因为有时 XIB 的数量可能更多并且会超过屏幕的大小,因此我可能需要一个可滚动的 stackView),显示如下

我发现了一些技巧here,但我认为这不会成功

StackView 的对齐方式 - 填充、分布 - 等间距 (0)

步骤 1. 将超级视图和堆栈视图之间的底部约束设置为 Equal or more

步骤 2. 使用优先级 1 和常量 0

对堆栈视图进行高度约束

步骤 3. 确保您在堆栈视图布局中正确查看 - 所有边缘都应安装在每个视图中

我通过以下方式解决了它:

  1. 移除stackView的底部约束
  2. Size Inspector 下的 Intrinsic sizeSystem Defined 更改为 Placeholder并将 height 设置为 1