【发布时间】:2018-09-02 11:53:32
【问题描述】:
我正在使用自动布局来定位我的视图。
在我的例子中,上面是一个UILabel,下面是一个UIStackView。
UIStackView 是为.fill 配置的,所有arrangedSubviews 都有一个正确的heightConstraint。
我想要做的是添加约束,以便UIStackView 在myLabel.bottomAnchor 和mySuperview.bottomAnchor 之间的空间中垂直居中。
到目前为止我尝试的是:
- 为
UIStackView添加顶部和底部约束:_stackView.topAnchor.constraint(greaterThanOrEqualTo: _myLabel.bottomAnchor)-
_stackView.bottomAnchor.constraint(greaterThanOrEqualTo: _mySuperview.bottomAnchor)
现在它的工作原理是它只是将正确大小的UIStackView 放在_mySuperview 的底部。
然而,我想要的是它位于中心。
我看到有一个名为anchorWithOffset(to:) 的方法,听起来正是我需要的,但找不到正确的使用方法。
所以我的问题是,如何在两个给定的NSLayoutAnchors 之间将UIView 居中?
编辑:我知道我可以添加一个UIView,它是我的其他两个视图之间的约束,并将我的UIStackView 居中。不过,我正在寻找更纯粹的解决方案。
【问题讨论】:
-
我在回答时错过了您的“编辑”。不确定您所说的“更纯净”的解决方案是什么意思
-
“更纯粹”的意思是只使用适当的约束,而不使用额外的视图。虽然您的回答确实有效,但我正在寻找更多在这种情况下正确使用 AutoLayout。
标签: ios swift autolayout