使用autolayout保持3个UI按钮居中对齐

时间:2016-03-29 06:19:15

标签: ios objective-c uibutton ios-autolayout

我有一个UIView有3个UIButtons,我想要的是当我隐藏一个按钮时,我希望其他两个按钮以相等的边距居中对齐。假设有3个按钮,UI应该是

If there are 3 buttons
---------------
[   ][   ][   ]
---------------

if I hide Middle button

---------------
  [   ][   ]
---------------


if I hide 2 buttons
---------------
     [   ]
---------------

可以使用自动布局吗?如果是,那么请以正确的方式指导。

3 个答案:

答案 0 :(得分:2)

查看@Usama的接受回答:Align Three UIButton using Auto Layout

以下是Sample Code

示例代码输出:

Sample code output

感谢:Usama

答案 1 :(得分:0)

一种方法是为每个按钮添加宽度约束,并在隐藏相应按钮时将其常量和前导约束常量设置为零。

另一种方法是删除不必要的约束并在每次更改时添加新约束。

您应该记住隐藏的视图仍然在自动布局过程中起作用。

答案 2 :(得分:0)

使用自动布局可以实现大多数功能,但并不总是那么容易。

这就是我要尝试的内容(我只关注水平排列 - 你当然需要为垂直排列添加约束,但这应该很容易):

  1. 创建一个UIView作为容纳按钮的容器。
  2. 将此容器视图限制为在主视图中水平居中。
  3. 将3个按钮放在容器视图中: 一个。在所有按钮上设置宽度约束。 湾限制通向容器前导的第一个按钮。 C。将第一个按钮拖尾到第二个按钮,然后按照您想要的间距。 d。将第二个按钮限制为最后一个按钮,其间距与c相同。 即限制最后一个按钮跟踪到容器尾随。
  4. 为按钮宽度约束和间距约束c创建出口。和d。上方。
  5. 现在,要隐藏任何按钮,请将其宽度约束常量设置为0,并将其最近的间距约束设置为0.(中间按钮在任一侧都有间距约束 - 选择一个设置为0,哪一个无关紧要。 )

    要重新显示按钮,请将约束常量设置回原始值。