gpt4 book ai didi

ios - 无法取消隐藏按钮,除了 ViewDidLayoutSubviews()

转载 作者:搜寻专家 更新时间:2023-11-01 07:25:39 84 4
gpt4 key购买 nike

我有一个只应偶尔出现的 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
}

最佳答案

仅将其设置为隐藏并不能解决所有问题,您需要重新绘制 View 。当您创建不在 viewDidLayout 中的按钮时,我会设置 clearButton.hidden = true,或者当 View 再次布局时它总是隐藏(在 iPad 上调整大小或横向)。然后在你的 textFieldDidBeginEditing 方法中,我会像你一样设置 clearButton.hidden = false 然后调用 view.setNeedsLayout() 强制它重新布局和绘制。

关于ios - 无法取消隐藏按钮,除了 ViewDidLayoutSubviews(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36526007/

84 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com