StackView 不拉伸,拥抱内容

Posted

技术标签:

【中文标题】StackView 不拉伸,拥抱内容【英文标题】:StackView not stretching, hugging content 【发布时间】:2016-09-06 18:19:19 【问题描述】:

我遇到了一个 UIStackView 问题,它不会延伸到超级视图边界。 我已经向 stackView 添加了约束,以用左右边距填充它的超级视图。但不是这样做,而是将其调整为内容大小。我将distribution 设置为.equalSpacingaxis 设置为.horizontal

在只有 stackView 的测试项目中,它可以正常工作(尽管在我的实际项目中,我在代码和 IB 的测试项目中这样做)。 这里内容视图的约束被正确忽略,stackView 占用了父视图的空间

我尝试更改 contentViews 和 stackView 的 contentHugging,但没有任何改变。非常感谢任何帮助:)

【问题讨论】:

【参考方案1】:

我自己找到了,问题是 stackView 位于 UIScrollView 内,以便在 stackView 扩展屏幕边界后使其可滚动。由于向 scrollView 的子视图添加约束确实与 scrollView 的 contentSize 而不是框架相关,因此无法正确解决约束。

我最终在didMoveToSuperview() 中为超级视图添加了约束

希望这可以帮助某人:)

【讨论】:

以上是关于StackView 不拉伸,拥抱内容的主要内容,如果未能解决你的问题,请参考以下文章

stackView 中的 StackView 不能通过 swift 使用它的间距

选择 stackView 上的哪个子视图将拉伸(以编程方式)

堆栈视图和内容拥抱优先级 - 意外行为

左对齐的水平堆栈视图和顶部对齐的垂直堆栈视图

如何解决 Interface Builder Xcode 中的 stackview 错误问题?

为啥忽略拥抱优先级?