文本字段使用隐藏的空白
White Spaces using hidden for text field
我有一个包含许多标签和文本字段的表单,我只想在选择了选择器视图时显示一些文本字段,所以我使用 hidden = true
来隐藏我的项目,但两者之间存在差距文本字段,因为中间的文本字段是隐藏的。我该怎么做才能没有空白 space ?
屏幕:
您可以通过使用具有不同优先级的自动布局约束来完成您想要的。
- 从标签 3 的顶部到字段 2 的底部添加一个垂直约束,并为其指定常量
8
和优先级 998
。
- 从标签 3 的顶部到字段 1 的底部添加一个垂直约束,并为其指定常量
8
和优先级 997
。
- 将
@IBOutlet
添加到您的代码的第 2 步中的约束。您可以通过在 Document Outline 和 control 中找到约束 - 拖动到您的代码来完成此操作。将其命名为 field3Top
.
当需要隐藏字段 2 时,将文本字段 2 和标签 2 的 hidden
属性 设置为 true
并更改fieldTop.priority
到 999
。这将导致此约束优先于另一个约束,并且差距将被关闭。
@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()
}
当再次显示字段 2 时,设置 field3Top.priority = 997
并将 hidden
属性设置回 false
。
这是隐藏操作的演示:
我有一个包含许多标签和文本字段的表单,我只想在选择了选择器视图时显示一些文本字段,所以我使用 hidden = true
来隐藏我的项目,但两者之间存在差距文本字段,因为中间的文本字段是隐藏的。我该怎么做才能没有空白 space ?
屏幕:
您可以通过使用具有不同优先级的自动布局约束来完成您想要的。
- 从标签 3 的顶部到字段 2 的底部添加一个垂直约束,并为其指定常量
8
和优先级998
。 - 从标签 3 的顶部到字段 1 的底部添加一个垂直约束,并为其指定常量
8
和优先级997
。 - 将
@IBOutlet
添加到您的代码的第 2 步中的约束。您可以通过在 Document Outline 和 control 中找到约束 - 拖动到您的代码来完成此操作。将其命名为field3Top
. 当需要隐藏字段 2 时,将文本字段 2 和标签 2 的
hidden
属性 设置为true
并更改fieldTop.priority
到999
。这将导致此约束优先于另一个约束,并且差距将被关闭。@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() }
当再次显示字段 2 时,设置
field3Top.priority = 997
并将hidden
属性设置回false
。
这是隐藏操作的演示: