Как расширить UIViewController для скрытия и отображения StatusBar в Swift - PullRequest
0 голосов
/ 20 мая 2019

Я использую isHideStatusBar (true) и переопределяю два важных параметра для скрытия и отображения StatusBar в viewController

        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?

1 Ответ

1 голос
/ 20 мая 2019

Может быть с подклассом

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)
    } 

}

Возможность расширения ограничена возможностью хранить сохраненные свойства и переопределенные методы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...