gpt4 book ai didi

ios - removeFromSuperview() 并不总是有效

转载 作者:搜寻专家 更新时间:2023-11-01 05:56:04 27 4
gpt4 key购买 nike

我声明了一个名为 var progressBar 的 UIView 变量:UIView?

我用这个函数显示或隐藏 View

func showProgressBar(showBar: Bool){
if showBar{
let viewHeight = view.frame.size.height
progressBar = Bundle.main.loadNibNamed("progressBar", owner: nil, options: nil)?.first as? UIView
progressBar?.frame = CGRect(x: 0, y: viewHeight - 80 , width: self.view.frame.width, height: 80)
if let bar = progressBar{
self.view.addSubview(bar)
}
}else{
DispatchQueue.main.async() {
self.progressBar?.removeFromSuperview()
}
}

有时,当我在 View 之间稍微导航时,我无法隐藏进度条,即使在执行 self.progressBar?.removeFromSuperview() 时也是如此。在我看来,如果 View 丢失了对旧进度条的引用...您是否知道这个问题以及我该如何解决它?

最佳答案

如果您调用 showProgressBar 两次,则不会验证是否已经没有栏,因此您可能会添加第二个栏并丢失对第一个栏的引用。因此,当您删除它时,它只会删除第二个并且不起作用。

关于ios - removeFromSuperview() 并不总是有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44702264/

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