无法取消隐藏按钮,除了 ViewDidLayoutSubviews()
Cannot unhide a button except in ViewDidLayoutSubviews()
我有一个 UIButton
应该只是偶尔出现。在 viewDidLayoutSubviews
我做了以下事情:
override func viewDidLayoutSubviews() {
super.viewWillLayoutSubviews()
clearButtonOutlet.hidden = true
但是,当我在其他地方尝试clearButtonOutlet.hidden = false
时,按钮不会重新出现。
起初我以为我的约束可能搞砸了,但这使按钮重新出现:
override func viewDidLayoutSubviews() {
super.viewWillLayoutSubviews()
clearButtonOutlet.hidden = true
clearButtonOutlet.hidden = false
为什么我不能让按钮重新出现在其他地方?
编辑 1:我试图让按钮重新出现的地方:
func textFieldDidBeginEditing(textField: UITextField) {
//some stuff
switch textField.tag {
//tag = 3 is the when I want the clear button to show
case 3:
//launch the date picker
launchDatePicker(textField)
//once DatePicker is launched, show the clear button
clearButtonOutlet.hidden = false
default: break
}
仅将其设置为隐藏并不能解决所有问题,您需要重新绘制视图。当您创建不在 viewDidLayout 中的按钮时,我会设置 clearButton.hidden = true
,或者当视图再次布局时它将始终隐藏(在 iPad 或横向方向上调整大小)。然后在你的 textFieldDidBeginEditing
方法中我会像你一样设置 clearButton.hidden = false
然后调用 view.setNeedsLayout()
强制它重新布局和绘制。
我有一个 UIButton
应该只是偶尔出现。在 viewDidLayoutSubviews
我做了以下事情:
override func viewDidLayoutSubviews() {
super.viewWillLayoutSubviews()
clearButtonOutlet.hidden = true
但是,当我在其他地方尝试clearButtonOutlet.hidden = false
时,按钮不会重新出现。
起初我以为我的约束可能搞砸了,但这使按钮重新出现:
override func viewDidLayoutSubviews() {
super.viewWillLayoutSubviews()
clearButtonOutlet.hidden = true
clearButtonOutlet.hidden = false
为什么我不能让按钮重新出现在其他地方?
编辑 1:我试图让按钮重新出现的地方:
func textFieldDidBeginEditing(textField: UITextField) {
//some stuff
switch textField.tag {
//tag = 3 is the when I want the clear button to show
case 3:
//launch the date picker
launchDatePicker(textField)
//once DatePicker is launched, show the clear button
clearButtonOutlet.hidden = false
default: break
}
仅将其设置为隐藏并不能解决所有问题,您需要重新绘制视图。当您创建不在 viewDidLayout 中的按钮时,我会设置 clearButton.hidden = true
,或者当视图再次布局时它将始终隐藏(在 iPad 或横向方向上调整大小)。然后在你的 textFieldDidBeginEditing
方法中我会像你一样设置 clearButton.hidden = false
然后调用 view.setNeedsLayout()
强制它重新布局和绘制。