Строка состояния становится черной, когда UINavigationController скрывается при прокрутке - PullRequest
0 голосов
/ 07 мая 2018

Я использую collectionView в своем приложении и устанавливаю стиль строки состояния на свет, а для hidesBarsOnSwipe из navigationController устанавливается значение true. Но когда я прокручиваю ячейку вверх, navigationController скрывается, но строка состояния становится черного цвета. и обратно к белому при прокрутке collectionView вниз. это мой код для навигации контроллера:

extension UINavigationController {

    override open var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }

    func transparentNavigation() {

        guard let pacificoFont = UIFont(name: "Pacifico", size: 20) else {return}

        navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.foregroundColor, NSAttributedStringKey.font: pacificoFont]

        navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
        navigationBar.shadowImage = UIImage()
        navigationBar.isTranslucent = true
        view.backgroundColor = .clear
        hidesBarsOnSwipe = true
    }

}

Есть ли способ исправить эту "особенность"?

1 Ответ

0 голосов
/ 07 мая 2018

Если у вас есть translucent панель навигации, строка состояния получает свой цвет от панели навигации. В результате, когда панель навигации прокручивается, строка состояния становится черной по умолчанию.

Если вы хотите, чтобы translucent Панель навигации и строка состояния были определенного цвета (например, белого), вы можете использовать

Вы можете добавить его в ViewDidLoad

    let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView
    statusBar.backgroundColor = UIColor.white

Надеюсь, это поможет

...