Изменение цвета текста строки состояния в заставке iOS 7


Я знаю, что уже есть некоторые stackoverflow вопросы , в которых говорится, как изменить строку состояния для всех контроллеров вида. В настоящее время я изменяю цвет строки состояния следующим образом:

if(IS_IOS7)
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

В application:DidFinishLaunching

Кроме того, я изменил значение UIViewControllerBasedStatusBarAppearance в plist на NO. Тем не менее, в splashscreen он все еще показывает текст строки состояния с черным цветом.

Можно ли изменить цвет текста строки состояния color в окне заставка ?

6 88

6 ответов:

В файле plist проекта добавьте свойство "стиль строки состояния" (ключ - UIStatusBarStyle). Затем проигнорируйте все возможные значения, перечисленные в раскрывающемся списке для этого свойства, и введите вместо них UIStatusBarStyleLightContent.

И вам не нужно устанавливать UIViewControllerBasedStatusBarAppearance в NO в вашем plist, вы можете установить preferredStatusBarStyle, который вы хотите, чтобы ваши контроллеры вида.

Вы можете сделать это без написания какой-либо строки кода
Выполните следующие действия, чтобы сделать текст строки состояния белым по всему приложению

На вас проект plist файл:

  • стиль строки состояния: UIStatusBarStyleLightContent
  • Внешний вид строки состояния на основе контроллера: NO
  • строка состояния изначально скрыта: NO

Вы можете выполнить следующие действия для получения светлого цвета строки состояния во всем приложении.

  1. выберите имя проекта в навигаторе проектов.
  2. выберите имя цели из списка в левой колонке редактора проекта.
  3. Нажмите кнопку Общие в верхней части редактора проекта.
  4. Установить Стиль Строки Состояния - > Свет

В файл plist добавьте следующие значения:

  1. стиль строки состояния - UIStatusBarStyleLightContent
  2. отображение строки состояния на основе контроллера-нет

Это поможет вам получить строку состояния в белом цвете по всему приложению, включая экран-заставку.

Установите 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 в вашем `.файл плиста.

Если вы хотите задать стиль строки состояния, на уровне контроллера вида выполните следующие действия:

  1. установите UIViewControllerBasedStatusBarAppearance в YES в файле .plist, Если вам нужно задать стиль строки состояния только на уровне UIViewController.
  2. В функции viewDidLoad добавить - setNeedsStatusBarAppearanceUpdate

  3. Переопределите 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
    }

}



Вот результат:

Введите описание изображения здесь