Изменение цвета текста строки состояния в заставке iOS 7
Я знаю, что уже есть некоторые stackoverflow вопросы , в которых говорится, как изменить строку состояния для всех контроллеров вида. В настоящее время я изменяю цвет строки состояния следующим образом:
if(IS_IOS7)
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
В application:DidFinishLaunching
Кроме того, я изменил значение UIViewControllerBasedStatusBarAppearance в plist на NO. Тем не менее, в splashscreen он все еще показывает текст строки состояния с черным цветом.
Можно ли изменить цвет текста строки состояния color в окне заставка ?
6 ответов:
В файле plist проекта добавьте свойство "стиль строки состояния" (ключ -
UIStatusBarStyle). Затем проигнорируйте все возможные значения, перечисленные в раскрывающемся списке для этого свойства, и введите вместо нихUIStatusBarStyleLightContent.И вам не нужно устанавливать
UIViewControllerBasedStatusBarAppearanceвNOв вашем plist, вы можете установитьpreferredStatusBarStyle, который вы хотите, чтобы ваши контроллеры вида.
Вы можете сделать это без написания какой-либо строки кода
Выполните следующие действия, чтобы сделать текст строки состояния белым по всему приложениюНа вас проект plist файл:
- стиль строки состояния:
UIStatusBarStyleLightContent- Внешний вид строки состояния на основе контроллера:
NO- строка состояния изначально скрыта:
NO
Вы можете выполнить следующие действия для получения светлого цвета строки состояния во всем приложении.
- выберите имя проекта в навигаторе проектов.
- выберите имя цели из списка в левой колонке редактора проекта.
- Нажмите кнопку Общие в верхней части редактора проекта.
- Установить Стиль Строки Состояния - > Свет
В файл plist добавьте следующие значения:
- стиль строки состояния - UIStatusBarStyleLightContent
- отображение строки состояния на основе контроллера-нет
Это поможет вам получить строку состояния в белом цвете по всему приложению, включая экран-заставку.
Установите
UIViewControllerBasedStatusBarAppearanceв поле plistЗатем добавьте следующий код в не параметр
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); }Пожалуйста, следуйте этому коду, он работал для меня
Вы можете выполнить следующие действия для получения светлого цвета строки состояния во всем приложении.
Выберите имя проекта в навигаторе проектов. Выберите имя цели из списка в левой колонке редактора проекта. Нажмите кнопку Общие в верхней части редактора проекта. Установить Стиль Строки Состояния - > Light
Вот руководство Apple/инструкция об изменении строки состояния.
Вот - как изменить стиль строки состояния:
Если вы хотите установить стиль строки состояния, уровень приложения, то установите
UIViewControllerBasedStatusBarAppearanceвNOв вашем `.файл плиста.Если вы хотите задать стиль строки состояния, на уровне контроллера вида выполните следующие действия:
- установите
UIViewControllerBasedStatusBarAppearanceвYESв файле.plist, Если вам нужно задать стиль строки состояния только на уровне UIViewController.В функции viewDidLoad добавить -
setNeedsStatusBarAppearanceUpdateПереопределите preferredStatusBarStyle в контроллере вида.
-
override func viewDidLoad() { super.viewDidLoad() self.setNeedsStatusBarAppearanceUpdate() } override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent }Заданное значение .plist в соответствии с уровнем настройки стиля строки состояния.
Вы можете установить цвет фона для строки состояния во время запуска приложения или во время загрузки контроллера вида.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 } }
Вот результат:

