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

时间:2018-10-30 18:41:36

标签: ios nslayoutconstraint uistackview

为什么会这样?

enter image description here

这是我的限制:

enter image description here

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

我在做什么错了?

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:1)

您的垂直StackViews应该设置为:

Alignment: Center
Distribution: Fill

您的水平StackView应该设置为:

Alignment: Fill
Distribution: Fill Equally

结果:

enter image description here

enter image description here