白色空间使用隐藏的文本字段

时间:2015-11-27 15:00:24

标签: ios swift storyboard uitextfield uipickerview

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

屏幕:

picture 1

picture 2

1 个答案:

答案 0 :(得分:0)

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

  1. 从标签3的顶部向字段2的底部添加一个垂直约束,并为其提供8的常量和998的优先级。
  2. 从标签3的顶部向字段1的底部添加一个垂直约束,并将其设为常量8,优先级为997
  3. 在步骤2中将约束@IBOutlet添加到您的代码中。您可以通过在文档大纲控件中查找约束来执行此操作 - 拖延到您的代码中。称之为field3Top
  4. 当需要隐藏字段2时,请为文本字段2设置hidden属性,将标记2设置为true,并将fieldTop.priority的优先级更改为{{ 1}}。这将导致此约束优先于另一个约束,并且将关闭间隙。

    999
  5. 当需要再次显示字段2时,请设置@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() } 并将field3Top.priority = 997属性设置回hidden

  6. 这是隐藏行动的演示:

    demo of hiding a field