UIStackView 在容器视图中的行为不可预测

Posted

技术标签:

【中文标题】UIStackView 在容器视图中的行为不可预测【英文标题】:UIStackView behaving unpredictably when inside a Container View 【发布时间】:2016-07-14 06:44:45 【问题描述】:

Stack View H 中有两个 UIView,并且被限制为填充父 UIView。 UIStackView 中的灰色和绿色 UIView 受宽度限制,因此我在 Interface Builder 中看到的正是我所期望看到的。

但是,当我运行应用程序时,我得到了这个:

灰色的 UIView 已经消失(或隐藏在绿色视图后面),绿色视图现在是全宽的。我怀疑这些观点是相互叠加而不是分散的,但我不明白为什么。我说它们堆叠在一起的原因是因为如果我将 UIViews 更改为 UILabels,很明显这就是正在发生的事情。

【问题讨论】:

【参考方案1】:

好吧,我解决了这个问题,虽然我不会将其称为 Interface Builder 中的错误,但它肯定是一个微妙之处。在 Interface Builder 中,当您从对象库向 UIStackView 添加新对象时,首先将其添加到父 UIView,然后再将其拖入 UIStackView。如果将它从对象库中直接拖到 UIStackView 中,则“出现问题”并且该对象将不会受到适当的约束。

【讨论】:

以上是关于UIStackView 在容器视图中的行为不可预测的主要内容,如果未能解决你的问题,请参考以下文章

UIStackView 没有出现在容器视图中

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

UIPageViewController 的视图框架在 iOS 上是不可预测的

UITableviewCell 中的 UIStackview 按比例填充需要不正确的帧

UITableViewRowAction 行为不可预测

UIStackView 浮动视图