Изменение цвета текста строки состояния в заставке 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 } }
Вот результат: