Как установить statusBarStyle внутри AppDelegate без предупреждений - PullRequest
0 голосов
/ 25 октября 2018

Перед тем как начать, я хотел бы извиниться, если этот вопрос дублируется, поскольку я видел много вопросов, но я не могу найти то, что мне нужно.

Я хочу создать глобальный статус, навигацию, стиль панели инструментов и, если возможно, нижнюю часть представления на iPhone X и далее только из моего делегата приложения, поэтому мне не нужно задавать его для каждогоViewController.

Пока у меня есть:

extension UIApplication {

    var statusBarView: UIView? {
        return value(forKey: "statusBar") as? UIView
    }

}

и функция, вызываемая внутри метода didFinishLaunchingWithOptions

private func setupNavigationBarStyle(){

     UIApplication.shared.statusBarView!.backgroundColor = UIColor.AppColors.statusBar
     UIApplication.shared.statusBarStyle = .lightContent
     UINavigationBar.appearance().barTintColor = .brown
     UINavigationBar.appearance().tintColor = .green
     UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.yellow]
     UINavigationBar.appearance().isTranslucent = false

    }

Я прикрепляю фиктивный дизайн для моего контроллера представления с помощью раскадровки enter image description here

и окончательный результат enter image description here

Несмотря на то, что я не лучший дизайн, у меня есть 3 вопроса.

  • UIApplication.shared.statusBarStyle = .lightContent устарела и отображает предупреждение, а я этого не хочу.

  • Как изменить цвет длявнизу для iPhone X и далее (в настоящее время красным и там, где находится горизонтальная линия).

  • Могу ли я изменить statusBarStyle для другого, не определенного, и изменить цвет текста в моей строке состояния Фиолетовый?

1 Ответ

0 голосов
/ 29 октября 2018

Я надеюсь, что это поможет вам

  • UIApplication.shared.statusBarStyle = .lightContent устарел, и он показывает предупреждение, и я не хочу этого.

    Перейдите в Project -> Target, установите стиль строки состояния на Light

    • Как изменить цвет нижней части для iPhone X и далее (в настоящее время красным и там, где горизонтальная линия).

    изменить цвет невозможно, и вам не следует об этом беспокоиться, так как он находится вне вашего контроля и гарантированно будет видимым. Информация (https://medium.freecodecamp.org/reverse-engineering-the-iphone-x-home-indicator-color-a4c112f84d34).

    • Могу ли я изменить statusBarStyle для другого, не определенного, и изменить цвет текста в моей строке состояния Фиолетовый?

      func setStatusBarBackgroundColor(color: UIColor) {
      
          guard let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView else { return }
              statusBar.backgroundColor = color
      }
      
      //Use self.setStatusBarBackgroundColor(color: .purple)
      

Спасибо

...