堆栈视图中堆栈视图的约束

Posted

技术标签:

【中文标题】堆栈视图中堆栈视图的约束【英文标题】:Constraints for Stack View in Stack View 【发布时间】:2018-10-30 18:41:36 【问题描述】:

为什么会这样?

这是我的限制:

两个堆栈视图:水平和垂直,两个分布均设置为“均等填充”。

我做错了什么?

【问题讨论】:

【参考方案1】:

distribution 属性确定子视图沿堆栈视图轴的大小,在这种情况下,垂直堆栈视图上的 .fillEqually 将导致开关和标签具有相同的高度。

alignment 属性将确定视图在另一个轴上的位置和大小。如果设置为默认值.fill,则视图将与堆栈视图具有相同的大小。

在这种情况下,堆栈视图将为开关和标签分配与包含堆栈视图一样宽的宽度,但开关具有固定大小,因此它们将覆盖该大小并保持固定宽度。

如果您希望标签和开关居中,请将alignment 设置为.center

【讨论】:

【参考方案2】:

您的垂直 StackViews 应设置为:

Alignment: Center
Distribution: Fill

你的水平 StackView 应该设置为:

Alignment: Fill
Distribution: Fill Equally

结果:

【讨论】:

以上是关于堆栈视图中堆栈视图的约束的主要内容,如果未能解决你的问题,请参考以下文章

如何为嵌入在另一个堆栈视图中的堆栈视图设置顶部布局约束?

如何为堆栈视图中的视图添加约束

如何在 Xcode 的嵌入式堆栈视图中设置边距而不会出现约束错误?

XCode:堆栈视图和约束

无法满足嵌套堆栈视图的约束

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