如何使用AutoLayout保持两个视图居中

时间:2013-02-21 20:32:22

标签: uikit autolayout

我有两个按钮,我希望将它们作为一个组保持在超级视图中。

以可视格式表示我希望|-*-[button1]-5-[button2]-*-|之类的内容*应该相等,并由AutoLayout自动确定。

我目前有三种解决方法,看起来都不是很优雅

  1. 制作UIView的两个按钮子视图,并将视图中心视为

  2. 手动计算*的值并手动更新约束

  3. 将两个按钮对齐到superview的中心,并根据按钮宽度手动计算偏移量

  4. 还有其他建议吗?

2 个答案:

答案 0 :(得分:2)

我认为我过于关注将两个按钮的中心对齐到他们的超级视图。当我开始考虑边缘时,我想出了这个

[NSLayoutConstraint constraintWithItem:button1
                             attribute:NSLayoutAttributeRight
                             relatedBy:NSLayoutRelationEqual
                                toItem:superview
                             attribute:NSLayoutAttributeCenterX
                            multiplier:1
                              constant:-2.5]];

[NSLayoutConstraint constraintWithItem:button2
                             attribute:NSLayoutAttributeLeft
                             relatedBy:NSLayoutRelationEqual
                                toItem:superview
                             attribute:NSLayoutAttributeCenterX
                            multiplier:1
                              constant:2.5]];

这使两个按钮居中于superview,中间间距为5.

答案 1 :(得分:0)

您可以将虚拟元素(隐藏视图)居中,然后向左和向右偏移每个按钮。

enter image description here