作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我声明了一个名为 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/
我是一名优秀的程序员,十分优秀!