在 Swift 中的两个元素之间自动前导 space
Auto leading space between two elements in Swift
我有 3 个隐藏的标签,在从数据库检查后我设置 label.isHidden = false
仅当该标签的值存在时。
这是所有标签都有正确值的情况
所以我使用 Storyboard 和 AutoLayout 来确定这些标签的位置,但如果其中一个仍然隐藏,我需要将标签拉到左边,保持 space 与其他标签。
这是现在的样子
是否可以通过编程方式实现?如果是,如何?
为此使用 StackView。如果你使用StackView.Rather,你不必做累人的自动布局,你会找到你想要的
点击隐藏后。
点击显示后
实现此目的的一种方法是将每个标签相对于相邻标签对齐(例如 label1.trailing 到 label2.leading)。
然后,您可以将宽度约束设置为 0 并在超级视图上调用 layoutIfNeeded
,而不是将任何标签设置为隐藏,然后所有其他标签将相应地布局。
使用 StackView 来处理这个问题 Space 而不是使用 isHidden 来隐藏标签。
您也可以通过 AutoLayout 实现,使用约束的 yourConstraint.constant = 0 或优先级 属性。
我有 3 个隐藏的标签,在从数据库检查后我设置 label.isHidden = false
仅当该标签的值存在时。
这是所有标签都有正确值的情况
所以我使用 Storyboard 和 AutoLayout 来确定这些标签的位置,但如果其中一个仍然隐藏,我需要将标签拉到左边,保持 space 与其他标签。
这是现在的样子
是否可以通过编程方式实现?如果是,如何?
为此使用 StackView。如果你使用StackView.Rather,你不必做累人的自动布局,你会找到你想要的
点击隐藏后。
点击显示后
实现此目的的一种方法是将每个标签相对于相邻标签对齐(例如 label1.trailing 到 label2.leading)。
然后,您可以将宽度约束设置为 0 并在超级视图上调用 layoutIfNeeded
,而不是将任何标签设置为隐藏,然后所有其他标签将相应地布局。
使用 StackView 来处理这个问题 Space 而不是使用 isHidden 来隐藏标签。
您也可以通过 AutoLayout 实现,使用约束的 yourConstraint.constant = 0 或优先级 属性。