Я пытаюсь заполнить цвет фона строки состояния оранжевым, используя следующие
UINavigationBar.appearance().tintColor = UIColor.orangeColor()
UINavigationBar.appearance().barTintColor = UIColor.orangeColor()
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
Однако я получаю белую строку состояния, которая должна быть заполнена апельсином вместо этого примера: Настроить внешний вид навигационной панели с быстрым
Я устанавливаю это в файле AppDelegate.swift в didFinishLaunchingWithOptions, чтобы применить его ко всему приложению.
Я отредактировал свой info.plist следующим образом: View controller-based status bar appearance => NO
Кто-нибудь знает, что я делаю неправильно?
Изменить: я не уверен, имеет ли значение, но представление находится в UITabBarController
Изменить 2: это происходит во всех представлениях, а не только в UITabBarController.
Редактировать 3: Спасибо @Утсав Парих
Я добавляю представление теперь поверх строки состояния, и он на короткое время, пока приложение загружает строку состояния, является оранжевым, но, как только он заканчивает загрузку, он отключается и заменяется общей белой статусной полосой, Почему это происходит?
let view = UIView(frame: CGRect(x: 0.0, y: 0.0, width: UIScreen.mainScreen().bounds.size.width, height: 20.0))
view.backgroundColor=UIColor.orangeColor()
self.window!.rootViewController!.view.addSubview(view)
Изменить для Swift 3:
с UITabBarController
let view = UIView(frame: CGRect(x: 0.0, y: 0.0, width: UIScreen.main.bounds.size.width, height: 20.0))
view.backgroundColor = .orange
self.view.addSubview(view)
Без встроенных контроллеров
Я понимаю, что некоторые люди приходят сюда не только для строки состояния, но и на панели навигации, поэтому я узнал несколько трюков на пути к этому без каких-либо встроенных контроллеров:
Добавьте этот метод в свой AppDelegate.swift и вызовите его в doneFinishLaunchingWithOptions
func customizeAppearance() {
UINavigationBar.appearance().barTintColor = UIColor.black
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
UITabBar.appearance().barTintColor = UIColor.black
let tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0)
UITabBar.appearance().tintColor = tintColor
}