动态调整大小的 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.
确保您在堆栈视图布局中正确查看 - 所有边缘都应安装在每个视图中
我通过以下方式解决了它:
- 移除stackView的底部约束
- 将 Size Inspector 下的
Intrinsic size
从 System Defined 更改为 Placeholder并将 height
设置为 1
我有 自定义 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. 确保您在堆栈视图布局中正确查看 - 所有边缘都应安装在每个视图中
我通过以下方式解决了它:
- 移除stackView的底部约束
- 将 Size Inspector 下的
Intrinsic size
从 System Defined 更改为 Placeholder并将height
设置为 1