我有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
}
答案 0 :(得分:2)
将其设置为隐藏不会做任何事情,您需要让视图重绘。当您创建不在viewDidLayout中的按钮时,我会设置clearButton.hidden = true
,或者当视图再次放置时(在iPad或横向上调整大小),它将始终隐藏。然后在我的textFieldDidBeginEditing
方法中,我会像您一样设置clearButton.hidden = false
,然后调用view.setNeedsLayout()
强制它重新布局并绘制。