【问题标题】:Auto leading space between two elements in SwiftSwift 中两个元素之间的自动前导空格
【发布时间】:2017-10-18 03:11:40
【问题描述】:

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

这是所有标签都有正确值的情况

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

这就是现在的样子

是否有可能以编程方式进行?如果是,怎么做?

【问题讨论】:

    标签: ios swift layout uistoryboard


    【解决方案1】:

    为此使用 StackView。如果你使用 StackView,你不必做累人的自动布局。相反,你会找到你想要的

    点击隐藏后。

    点击后显示

    【讨论】:

    • 可以在 CollectionViewCell 中使用 StackView 吗?
    • 但是如何重现相同的标签位置?
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      您也可以通过 AutoLayout 实现这一点,使用 yourConstraint.constant = 0 或约束的优先级属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-16
        • 2013-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多