界面堆栈视图;元素之间和外部元素的间距相等
UIStackView; Equal Spacing Between & Outside Elements
UIStackView 很棒,我喜欢等间距分布。
但是如何在元素之外动态地实现相同的 space 呢?
在我的例子中,所有元素都将具有相同的比率 1:1
您可以使用故事板添加等间距,如下所示:
来源:
您可以使用约束条件,然后给出相同的高度和宽度。因此,当您更改任何组件的尺寸时,所有组件都会更改为相同的尺寸。
我认为您想要的是堆栈视图外部的间距与外部间距相同。
我要做的是将堆栈视图放入另一个视图(灰色视图)并设置 leading 和 trailing constraint堆栈视图等于堆栈视图的间距。
堆栈视图的间距
Stack View 的超级视图(灰色视图)的约束
我更喜欢让 UIStackView
处理间距。创建一个间距相等的 UIStackView
并在堆栈视图的远端添加两个 0px 宽(如果使用垂直堆栈视图则为 0px 高)透明视图。
@Declan 的想法是正确的。这是以编程方式回答的问题,您可以在两侧添加额外的视图,以便堆栈视图为任意数量的按钮提供正确的外部间距。
stackView.alignment = .center
stackView.axis = .horizontal
stackView.distribution = .equalCentering
// Then when I add the views...
let leftView = UIView()
stackView.addArrangedSubview(leftView)
content.buttons.forEach { (button) in
stackView.addArrangedSubview(button)
}
let rightView = UIView()
stackView.addArrangedSubview(rightView)
这是我使用 equalSpacing
的 2 个项目的视图
这里是 equalCentering
分布,也很好看。
UIStackView 很棒,我喜欢等间距分布。 但是如何在元素之外动态地实现相同的 space 呢? 在我的例子中,所有元素都将具有相同的比率 1:1
您可以使用故事板添加等间距,如下所示:
来源:
您可以使用约束条件,然后给出相同的高度和宽度。因此,当您更改任何组件的尺寸时,所有组件都会更改为相同的尺寸。
我认为您想要的是堆栈视图外部的间距与外部间距相同。
我要做的是将堆栈视图放入另一个视图(灰色视图)并设置 leading 和 trailing constraint堆栈视图等于堆栈视图的间距。
堆栈视图的间距
Stack View 的超级视图(灰色视图)的约束
我更喜欢让 UIStackView
处理间距。创建一个间距相等的 UIStackView
并在堆栈视图的远端添加两个 0px 宽(如果使用垂直堆栈视图则为 0px 高)透明视图。
@Declan 的想法是正确的。这是以编程方式回答的问题,您可以在两侧添加额外的视图,以便堆栈视图为任意数量的按钮提供正确的外部间距。
stackView.alignment = .center
stackView.axis = .horizontal
stackView.distribution = .equalCentering
// Then when I add the views...
let leftView = UIView()
stackView.addArrangedSubview(leftView)
content.buttons.forEach { (button) in
stackView.addArrangedSubview(button)
}
let rightView = UIView()
stackView.addArrangedSubview(rightView)
这是我使用 equalSpacing
这里是 equalCentering
分布,也很好看。