Установка строки состояния и панели навигации одинакового цвета - PullRequest
0 голосов
/ 14 марта 2019

enter image description here

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

UIApplication.shared.statusBarView?.backgroundColor = UIColor(red: 13/225, green: 71/255, blue:161/255, alpha: 1.0)

UINavigationBar.appearance().barTintColor = UIColor(red: 13/225, green: 71/255, blue:161/255, alpha: 1.0)

Ответы [ 5 ]

1 голос
/ 14 марта 2019

попробуйте изменить полупрозрачный на ложный

navigationBar.isTranslucent = false
1 голос
/ 14 марта 2019

Вы можете добавить следующую функцию к AppDelegate.swift файлу

func changeStatusBarColor(_ color: UIColor) {
        guard let statusBar = (UIApplication.shared.value(forKey: "statusBarWindow") as AnyObject).value(forKey: "statusBar") as? UIView else {
            return
        }
        statusBar.backgroundColor = color
    }

и использовать в didFinishLaunchingWithOptions методе, как показано ниже

self.changeStatusBarColor(UIColor.black) //pass the color you want to set

Отредактировано

Вы можете использовать общий экземпляр в AppDelegate.swift файле

static let shared = AppDelegate()

После этого всякий раз, когда вы устанавливаете цвет фона навигации, просто передайте его в changeStatusBarColor метод

Используйте метод ниже для установки того же самогов качестве цвета фона навигации

AppDelegate.shared.changeStatusBarColor((self.navigationController?.navigationBar.backgroundColor)!)
0 голосов
/ 14 марта 2019
 self.navigationController?.navigationBar.tintColor = UIColor.blue 
 self.navigationController?.navigationBar.barTintColor = UIColor.blue

Я бегу на xcode 10.1, swift 4.2.Надеюсь, это поможет.

0 голосов
/ 14 марта 2019

self.navigationController.navigationBar.barTintColor = UIColor.yourColor

0 голосов
/ 14 марта 2019

Вам не нужно устанавливать цвет строки состояния, если вы хотите, чтобы он соответствовал панели навигации. Комментирование следующей строки решает эту проблему в моей среде.

Скриншот результатов

// UIApplication.shared.statusBarView?.backgroundColor = UIColor(red: 13/225, green: 71/255, blue:161/255, alpha: 1.0)

UINavigationBar.appearance().barTintColor = UIColor(red: 13/225, green: 71/255, blue:161/255, alpha: 1.0)

В качестве альтернативы вы можете сделать следующее:

UIApplication.shared.statusBarView?.backgroundColor = UIColor(red: 13/225, green: 71/255, blue:161/255, alpha: 0.0)

UINavigationBar.appearance().barTintColor = UIColor(red: 13/225, green: 71/255, blue:161/255, alpha: 0.0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...