Цвет текста строки состояния в XCode 6-b3 (Swift)
Я пытаюсь изменить цвет текста строки состояния, но ни один ответ из этого потока не работает.
Любое особенно для XCode 6?
Я пробовал вставить:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.LightContent
}
to UIViewController
также
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
до AppDelegate.swift
И я попытался изменить его в info.plist
Но это не влияет на это. Как изменить цвет текста строки состояния на белый?
Ответы
Ответ 1
В вашем Info.plist вам нужно определить Просмотреть состояние строки состояния на основе контроллера.
![enter image description here]()
Если вы определяете его ДА, вы должны переопределить функцию preferredStatusBarStyle
в каждом контроллере представления.
Если вы определяете его НЕТ, вы можете установить стиль в AppDelegate
, используя
UIApplication.sharedApplication().statusBarStyle = .LightContent
Ответ 2
Просто установите "Просмотр состояния строки состояния на основе контроллера == НЕТ" в вашем plist и поместите одну строку в класс appdelegate в методе didfinshLaunching.. p >
UIApplication.sharedApplication().statusBarStyle = .LightContent
Ответ 3
Swift 3.0
Просто установите View controller-based status bar appearance == NO
в свой *.plist
и поставьте ниже код в классе appdelegate в методе didFinishLaunchingWithOptions
до return
.
let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView
if statusBar.responds(to:#selector(setter: UIView.backgroundColor)) {
statusBar.backgroundColor = UIColor.red
}
UIApplication.shared.statusBarStyle = .lightContent
Вы можете изменить backgroundColor
и statusBarStyle
в соответствии с вашими требованиями.
Ответ 4
Обязательно установите View controller-based status bar appearance
в файле info.plist на Yes
.
Кроме того, если вы находитесь в UINavigationController, вы не можете просто установить стиль в ViewControllers в нем. Подкласс UINavigationController и добавьте к нему:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
if let vc = self.viewControllers?.last as? UIViewController {
return vc.preferredStatusBarStyle()
}
return super.preferredStatusBarStyle()
}
Теперь вы можете установить стиль бара в подклассе UIViewController, и UINavigationController будет его слушать:).
Ответ 5
Keenle находится на правильном пути, начиная с iOS7, вам нужно отказаться от стилей состояния на панели управления, основанных на просмотре, прежде чем вы сможете установить ее в приложении.
doc: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/index.html#//apple_ref/occ/instm/UIApplication/setStatusBarStyle:animated:
"Чтобы отказаться от поведения внешнего вида панели управления на основе контроллера, вы должны добавить ключ UIViewControllerBasedStatusBarAppearance со значением NO в файл Info.plist вашего приложения, но делать это не рекомендуется."