文本字段使用隐藏的空白

White Spaces using hidden for text field

我有一个包含许多标签和文本字段的表单,我只想在选择了选择器视图时显示一些文本字段,所以我使用 hidden = true 来隐藏我的项目,但两者之间存在差距文本字段,因为中间的文本字段是隐藏的。我该怎么做才能没有空白 space ?

屏幕:

您可以通过使用具有不同优先级的自动布局约束来完成您想要的。

  1. 从标签 3 的顶部到字段 2 的底部添加一个垂直约束,并为其指定常量 8 和优先级 998
  2. 从标签 3 的顶部到字段 1 的底部添加一个垂直约束,并为其指定常量 8 和优先级 997
  3. @IBOutlet 添加到您的代码的第 2 步中的约束。您可以通过在 Document Outlinecontrol 中找到约束 - 拖动到您的代码来完成此操作。将其命名为 field3Top.
  4. 当需要隐藏字段 2 时,将文本字段 2 和标签 2 的 hidden 属性 设置为 true 并更改fieldTop.priority999。这将导致此约束优先于另一个约束,并且差距将被关闭。

    @IBOutlet weak var field3Top: NSLayoutConstraint!
    @IBOutlet weak var field2Label: UILabel!
    @IBOutlet weak var field2TextField: UITextField!
    
    field3Top.priority = 999
    field2Label.hidden = true
    field2TextField.hidden = true
    
    // for fun, you can animate the change with this code
    UIView.animateWithDuration(1.0) {
        self.view.layoutIfNeeded()
    }
    
  5. 当再次显示字段 2 时,设置 field3Top.priority = 997 并将 hidden 属性设置回 false


这是隐藏操作的演示: