如何在UIStackView(iOS 9)中心周围均匀分隔两个子视图?

时间:2016-05-06 09:50:24

标签: ios uikit ios-autolayout uistackview

如何在垂直轴上均匀分布UIStackView中心周围的两个子视图?

目前,两个标签都位于StackView的顶部和底部。堆栈视图是simulator screen shot上的灰色区域。

如何使它们均匀分布?

   |
   |
[UILabel]
   |
   |
[UILabel]
   |
   |

我尝试过不同的配置,但我无法获得理想的结果。

这是我目前的代码:

let object = UIStackView()
object.translatesAutoresizingMaskIntoConstraints = false
object.alignment = UIStackViewAlignment.Center
object.axis = .Vertical
object.distribution = UIStackViewDistribution.EqualSpacing

2 个答案:

答案 0 :(得分:5)

考虑到你有类似的属性设置为UIStackView(如问题中所述)

   alignment -> Center 
        axis -> Vertical
distribution -> Equal Spacing

解决方案可以通过在UIStackView 的两端引入高度约束设置为0的两个空视图来实现。

<强>解释

在添加两个高度为0的空视图时,我们告诉UIStackView我们有4个视图而不是2个视图。 enter image description here

现在UIStackView将在所有视图之间添加相等的间距,从而输出。

enter image description here

您可以通过查看UIStackView的高度和标签的位置来交叉验证。

希望这有帮助!!!

答案 1 :(得分:0)

在stackView属性inspecter中,将间距值从0更改为首选空间值..