我使用 isHideStatusBar(true) 并覆盖了在 viewController 中隐藏和显示 StatusBar 的两个基本道具
var statusBarShouldBeHidden = false
override var prefersStatusBarHidden: Bool {
return statusBarShouldBeHidden
}
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
return .slide
}
func isHideStatusBar(_ bool: Bool, _ delay : CFTimeInterval = 0){
statusBarShouldBeHidden = bool
UIView.animate(withDuration: 0.4, delay: delay, options: [], animations: {
self.setNeedsStatusBarAppearanceUpdate()
}) { (finished) in
}
}
如何将此代码的某些行放入UIViewController
extension
?
可以带有子类
class MainViewController: UIViewController {
var statusBarShouldBeHidden = false
override var prefersStatusBarHidden: Bool {
return statusBarShouldBeHidden
}
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
return .slide
}
func isHideStatusBar(_ bool: Bool, _ delay : CFTimeInterval = 0){
statusBarShouldBeHidden = bool
UIView.animate(withDuration: 0.4, delay: delay, options: [], animations: {
self.setNeedsStatusBarAppearanceUpdate()
}) { (finished) in
}
}
}
class ViewController: MainViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
isHideStatusBar(true)
}
}
扩展能力仅限于包含存储的属性和覆盖的方法
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句