【发布时间】:2017-10-18 03:11:40
【问题描述】:
我有 3 个隐藏标签,在从数据库检查后,我设置 label.isHidden = false 仅当该标签的值存在时。
所以我使用带有 AutoLayout 的 Storyboard 来确定这些标签的位置,但如果其中一个标签仍然隐藏,我需要将标签向左拉,以保持与其他标签的空间。
是否有可能以编程方式进行?如果是,怎么做?
【问题讨论】:
标签: ios swift layout uistoryboard
我有 3 个隐藏标签,在从数据库检查后,我设置 label.isHidden = false 仅当该标签的值存在时。
所以我使用带有 AutoLayout 的 Storyboard 来确定这些标签的位置,但如果其中一个标签仍然隐藏,我需要将标签向左拉,以保持与其他标签的空间。
是否有可能以编程方式进行?如果是,怎么做?
【问题讨论】:
标签: ios swift layout uistoryboard
实现此目的的一种方法是将每个标签与相邻标签对齐(例如 label1.trailing 到 label2.leading)。
然后,您可以将宽度约束设置为 0 并在父视图上调用 layoutIfNeeded,而不是将任何标签设置为隐藏,然后所有其他标签将相应地进行布局。
【讨论】:
使用 StackView 来处理这个 Space 而不是使用 isHidden 来隐藏标签。
您也可以通过 AutoLayout 实现这一点,使用 yourConstraint.constant = 0 或约束的优先级属性。
【讨论】: