Изменение цвета текста в строке состояния на заставке iOS 7
Я знаю, что это уже некоторые вопросы, связанные со стековым потоком, в которых говорится, как изменить строку состояния для всех контроллеров представления. В настоящее время я меняю цвет строки состояния следующим образом:
if(IS_IOS7)
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
в application:DidFinishLaunching
Кроме того, я изменил значение UIViewControllerBasedStatusBarAppearance
в листе NO
, Однако на заставке он по-прежнему показывает текст строки состояния с черным цветом.
Можно ли изменить цвет текста строки состояния на заставке?
6 ответов
В файле plist проекта добавьте свойство "Стиль строки состояния" (ключ UIStatusBarStyle
). Затем проигнорируйте все возможные значения, перечисленные в раскрывающемся списке для этого свойства, и введите UIStatusBarStyleLightContent
вместо.
И вам не нужно устанавливать UIViewControllerBasedStatusBarAppearance
в NO
в вашем списке вы можете установить preferredStatusBarStyle
Вы хотите, чтобы ваши контроллеры просмотра.
Вы можете сделать это без написания какой-либо строки кода
Выполните следующие действия, чтобы сделать цвет текста строки состояния белым во всем приложении.
На вашем проекте plist файл:
- Стиль строки состояния:
UIStatusBarStyleLightContent
- Просмотр внешнего вида строки состояния на основе контроллера:
NO
- Строка состояния изначально скрыта:
NO
Вы можете сделать следующие вещи для получения светлой строки состояния во всем приложении.
- Выберите название проекта в навигаторе проекта.
- Выберите имя цели из списка в левой колонке редактора проекта.
- Нажмите General в верхней части редактора проекта.
- Установить стиль строки состояния -> Свет
В вашем файле plist добавьте следующие значения:
- Стиль строки состояния - UIStatusBarStyleLightContent
- Просмотреть внешний вид строки состояния на основе контроллера - НЕТ
Это поможет вам получить строку состояния в БЕЛОМ цвете по всему приложению, включая экран-заставку.
Установить UIViewControllerBasedStatusBarAppearance
Нет в списке
Затем добавьте следующий код в опцию "Закончить запуск"
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
[application setStatusBarStyle:UIStatusBarStyleLightContent];
self.window.clipsToBounds =YES;
self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
}
Пожалуйста, следуйте этому коду, он работал для меня
Вот Apple Guidelines/ Инструкция по изменению строки состояния.
Вот - Как изменить стиль строки состояния:
Если вы хотите установить стиль строки состояния, уровень приложения, затем установите UIViewControllerBasedStatusBarAppearance
в NO
в вашем файле.plist.
если вы хотите установить стиль строки состояния, на уровне контроллера представления выполните следующие действия:
- Установить
UIViewControllerBasedStatusBarAppearance
вYES
в.plist
файл, если вам нужно установить стиль строки состояния только на уровне UIViewController. В viewDidLoad добавить функцию -
setNeedsStatusBarAppearanceUpdate
переопределить предпочитаемый StatusBarStyle в вашем контроллере представления.
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Установите значение.plist в соответствии с уровнем настройки стиля строки состояния.
Вы можете установить цвет фона для строки состояния во время запуска приложения или во время viewDidLoad вашего контроллера представления.
extension UIApplication {
var statusBarView: UIView? {
return value(forKey: "statusBar") as? UIView
}
}
// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
return true
}
}
or
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
}
}
Вот результат:
Вы можете сделать следующие вещи для получения светлой строки состояния во всем приложении.
Выберите название проекта в навигаторе проекта. Выберите имя цели из списка в левой колонке редактора проекта. Нажмите General в верхней части редактора проекта. Установить стиль строки состояния -> Свет