在Swift中两个元素之间自动引导空间

时间:2017-05-18 10:38:53

标签: ios swift layout uistoryboard

我有3个隐藏的标签,在从数据库检查后,我只有在该标签的值存在时才设置label.isHidden = false

这是所有标签都具有正确值

的情况

所以我使用带有AutoLayout的Storyboard来确定这些标签的位置,但如果其中一个仍然隐藏,则我需要将标签拉到左侧,以保留其他标签的空间。

现在正在寻找enter image description here

是否可以通过编程方式进行?如果是,怎么样?

3 个答案:

答案 0 :(得分:1)

使用 StackView 。如果你使用StackView,你不必做累人的自动布局。你可以找到你想要的东西

enter image description here enter image description here

点击隐藏。

enter image description here

点击显示

enter image description here

答案 1 :(得分:1)

实现此目的的一种方法是将每个标签相对于相邻标签对齐(例如label1.trailing to label2.leading)。

然后,不是将任何标签设置为隐藏,而是可以将宽度约束设置为0并在超级视图上调用layoutIfNeeded,然后所有其他标签将相应地进行布局。

答案 2 :(得分:0)

使用StackView处理此Space而不是使用isHidden来隐藏标签。

您也可以通过AutoLayout实现该功能,使用约束的.Constraint.constant = 0或优先级属性。