0

我有两个按钮,我想将它们作为一个组集中在他们的超级视图中。

以视觉格式表示,我想要类似|-*-[button1]-5-[button2]-*-|where*应该相等并由 AutoLayout 自动确定的内容。

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

  1. 制作 UIView 的两个按钮子视图并将该视图居中

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

  3. 将两个按钮与超级视图的中心对齐,并使用从按钮宽度手动计算的偏移量

还有其他建议吗?

4

2 回答 2

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。

于 2013-02-22T06:51:39.180 回答
0

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

在此处输入图像描述

于 2013-02-21T21:50:49.327 回答