UIStackView 的高度和垂直位置不明确

Posted

技术标签:

【中文标题】UIStackView 的高度和垂直位置不明确【英文标题】:height and vertical position are ambiguous for UIStackView 【发布时间】:2017-08-01 04:24:02 【问题描述】:

尽管添加了子视图,但自动布局无法确定 UIStackView 的高度或垂直位置。

这是一个非常常见的错误和“陷阱”,所以请参阅下面的答案。

【问题讨论】:

【参考方案1】:

如果这是针对 UIStackView 的,请确保您使用的是 addArrangedSubview不是 addSubview

【讨论】:

【参考方案2】:

对我来说,我收到以下错误:

warning: Ambiguous Layout: Position and size are ambiguous for 'Button'.

按钮放置在 Interface Builder 中的堆栈视图中的位置。问题是我在 Interface Builder 中检查了“隐藏”,这意味着 Xcode 吓坏了,说位置和大小不明确。只需取消选中堆栈视图中的“隐藏”,警告就会消失...太神奇了! ✨

【讨论】:

【参考方案3】:

从 XCode 12.3 开始,您可以控制从 StackView 到您的 View 的拖动,这将允许您创建约束来解决警告:

https://imgur.com/a/p8ixhOc

如果您想处理前导/尾随空格问题或居中问题,这将打开此窗口:

https://imgur.com/a/Awl3Hzp

【讨论】:

以上是关于UIStackView 的高度和垂直位置不明确的主要内容,如果未能解决你的问题,请参考以下文章

Xcode IB 警告 UICollectionViewCell 中 UIStackView 的位置不明确,尽管它不应该是

防止 UIStackView 压缩 UITableView

基于子视图的 UIStackView 容器视图高度

相对于堆栈视图高度,限制UIStackView的子视图

当轴垂直时在 UIStackView 的子视图上设置恒定宽度

相对于堆栈视图高度约束 UIStackView 的子视图