我有一个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
}
仅将其设置为隐藏并不能完成所有操作,您需要重新绘制视图。我将clearButton.hidden = true
在您创建不在viewDidLayout中的按钮时进行设置,否则当视图再次布局时(在iPad或横向方向上调整尺寸)它将始终隐藏。然后,在您的textFieldDidBeginEditing
方法中,我将clearButton.hidden = false
像设置的那样进行设置,然后调用view.setNeedsLayout()
以强制其重新布局和绘制。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句