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

Posted

技术标签:

【中文标题】如何在 UIStackView (iOS 9)的中心周围均匀分布两个子视图?【英文标题】:How to evenly space two subviews around the center of UIStackView (iOS 9)? 【发布时间】:2016-05-06 09:50:24 【问题描述】:

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

目前这两个标签都在 StackView 的顶部和底部旁边。堆栈视图是simulator screen shot 上的灰色区域。

如何让它们间隔均匀?

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

我尝试了不同的配置,但都没有得到想要的结果。

这是我当前的代码:

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

【问题讨论】:

【参考方案1】:

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

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

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

说明

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

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

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

希望对你有帮助!!!

【讨论】:

【参考方案2】:

在 stackView 属性检查器中,将间距值从 0 更改为您的首选空间值..

【讨论】:

以上是关于如何在 UIStackView (iOS 9)的中心周围均匀分布两个子视图?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 9 之前的 Xamarin UIStackView

滚动到前沿的 IOS-9 UIStackView 问题

在 iOS 9 上更改隐藏属性时 UIStackView 不会动画

Xcode 7 beta 5 中 iOS 9.0 之前的 UIStackView

如何以编程方式在 IOS 的 UIStackView 中重新排序项目?

如何在IOS的UIStackView中设置权重