更快地删除子视图
Remove SubView Faster
在我的主要 UIViewController
嵌入 UINavigationController
中,我使用该代码将 UILabel 添加到导航栏:
if let navigationBar = self.navigationController?.navigationBar {
let frameDomanda = CGRect(x: navigationBar.frame.width/2 - domandaN.frame.width/2, y: -10, width: domandaN.frame.width, height: navigationBar.frame.height)
domandaN.frame = frameDomanda
let secondLabel = UILabel(frame: secondFrame)
secondLabel.text = "Second"
navigationBar.addSubview(domandaN)
}
但是当我更改 Controller 时,UILabel 已修复。它不会消失,所以我添加了代码:
override func viewDidDisappear(animated: Bool) {
domandaN.removeFromSuperview()
}
它可以工作,但我希望它在按下后退按钮后立即消失。不像这张图:
("example" 文本稍后消失)
你可以使用viewWillDisappear
,别忘了调用super:
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// you code here
}
只需将它添加到 viewWillDisappear
而不是这个:
override func viewWillDisappear(animated: Bool) {
domandaN.removeFromSuperview()
}
对于动画参数:
If true, the disappearance of the view is being animated.
在我的主要 UIViewController
嵌入 UINavigationController
中,我使用该代码将 UILabel 添加到导航栏:
if let navigationBar = self.navigationController?.navigationBar {
let frameDomanda = CGRect(x: navigationBar.frame.width/2 - domandaN.frame.width/2, y: -10, width: domandaN.frame.width, height: navigationBar.frame.height)
domandaN.frame = frameDomanda
let secondLabel = UILabel(frame: secondFrame)
secondLabel.text = "Second"
navigationBar.addSubview(domandaN)
}
但是当我更改 Controller 时,UILabel 已修复。它不会消失,所以我添加了代码:
override func viewDidDisappear(animated: Bool) {
domandaN.removeFromSuperview()
}
它可以工作,但我希望它在按下后退按钮后立即消失。不像这张图: ("example" 文本稍后消失)
你可以使用viewWillDisappear
,别忘了调用super:
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// you code here
}
只需将它添加到 viewWillDisappear
而不是这个:
override func viewWillDisappear(animated: Bool) {
domandaN.removeFromSuperview()
}
对于动画参数:
If true, the disappearance of the view is being animated.