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

Posted

技术标签:

【中文标题】动态调整大小的 stackView 以减少内容【英文标题】:Dynamically sized stackView for less content 【发布时间】:2019-11-01 07:15:32 【问题描述】:

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

我为此目的使用了stackView,我已将其添加到情节提要中并将其限制为superViewleading-triling-top-bottom。这意味着stackView将被拉伸到viewController的高度。

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

但我的问题出现在这里:由于我已将 stackView 限制为完整屏幕(因为有时 XIB 的数量可能会更多,并且会超过屏幕的大小,因此我可能需要一个可滚动的 stackView),它显示像这样

我发现了一种黑客 here,但我认为这不会成功

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

【问题讨论】:

移除底部的约束 【参考方案1】:

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

第 2 步。 使用优先级 1 和常量 0 对堆栈视图进行高度约束

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

【讨论】:

【参考方案2】:

我解决了:

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

【讨论】:

以上是关于动态调整大小的 stackView 以减少内容的主要内容,如果未能解决你的问题,请参考以下文章

在iOS中使用autolayout调整内容大小的UILabel

在 stackview 中调整 UIView 的大小

根据内容大小动画和调整 div 动态高度

UIImageView 未调整为圆形,UILabel 未在 StackView 和自定义集合单元中调整大小

如何在 Xcode 中调整 UIStackView 的子视图大小?

动态调整 pixi 舞台的大小及其在窗口调整大小和窗口加载时的内容