如何将两个按钮与UIView的中心等距离对齐

时间:2015-02-26 05:52:22

标签: ios objective-c iphone autolayout

我正在使用自动布局。面对有趣的问题。幸运的是,它暂时克服了它,但需要知道解决问题的最佳方法。

enter image description here

问题: 如上图所示,我有几个按钮。两者都需要放置在距离UIView中心等距离的位置(粗体垂直线是视图的中心)。此外,我必须以这样的方式应用约束,即按钮之间的距离将自动调整。例如距离应为设备宽度的25%。如果我的设备宽度为320,则按钮之间的距离为80像素,依此类推。

解决方案(我已尝试过): 对于上述问题,我尝试了解决方案。如图所示,我在UIView中添加了虚拟视图,虚拟视图的宽度等于两个按钮之间的间距。然后我将约束应用于虚拟视图。例如:1. Horizontal centre of the UIView 2.Width equals to the UIView width with 0.25 as a multiplier

问题: 以上解决方案对我来说非常合适。但是如果将来如果我的视图会有太多复杂的元素,那么添加虚拟视图可能不是一个好主意。那么,还有其他干净的方法吗?

3 个答案:

答案 0 :(得分:17)

我遇到了同样的问题。我决定使用rdelmar的回答。

这就是我所做的。

左键:

  1. 将约束添加到'中心 - 水平放入容器'
  2. 然后将乘数更改为0.5,而不是1为该约束。
  3. 右键:

    1. 将约束添加到'中心 - 水平放入容器'
    2. 然后将乘数更改为1.5而不是1为该约束。
    3. 让我知道它是否适合你。

答案 1 :(得分:2)

您可以通过在屏幕右边缘使用约束来在故事板(或xib)中执行此操作 - 右边缘的值与屏幕的宽度相同,因此您可以将其用于计算。对于左键,您希望其后缘等于超级视图的右边缘时间0.375(0.5减去.125,这是您25%要求的一半)。右边按钮的前沿等于superview的右边缘时间0.625(.5 + .125)。

约束看起来像这样,

enter image description here

enter image description here

答案 2 :(得分:0)

尝试将btn2的前缘和btn1的后缘与视图集的中心y对齐,并将乘数200:160和120:160分别对应,其中心y为第二项