black - status bar style ios 11



Как изменить цвет текста строки состояния в iOS (20)

  1. Перейдите в Project -> Target ,

  2. Затем установите Status Bar Style в положение « Light . Это делает статус-бар белым с экрана запуска.

  3. Затем установите View controller-based status bar appearance равный NO в Info.plist .

Мое приложение имеет темный фон, но в iOS 7 панель состояния стала прозрачной. Поэтому я ничего не вижу, только зеленый индикатор батареи в углу. Как изменить цвет текста строки состояния на белый, как на главном экране?


Answer #1
  1. Установите для UIViewControllerBasedStatusBarAppearance значение YES в файле .plist.

  2. В viewDidLoad выполните [self setNeedsStatusBarAppearanceUpdate];

  3. Добавьте следующий метод:

    - (UIStatusBarStyle)preferredStatusBarStyle
    { 
        return UIStatusBarStyleLightContent; 
    }
    

Примечание . Это не работает для контроллеров внутри UINavigationController , см . Комментарий Тайсона ниже :)

Swift 3 - Это будет работать с контроллерами внутри UINavigationController . Добавьте этот код в свой контроллер.

// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

Answer #2

В AppDelegate.m добавьте следующее.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

} 

И в файле Plist установите «Просмотр состояния панели управления на основе контроллера» на NO.


Answer #3

В качестве альтернативы вы можете отказаться от внешнего вида панели состояния на основе вида:

  1. Установите View controller-based status bar appearance на NO в вашем Info.plist .
  2. Вызов [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

Примечание. Этот метод устарел в iOS9. Вместо этого используйте preferredStatusBarStyle на UIViewController. (см. Библиотека разработчиков Apple )


Answer #4

Для меня ничего не случилось с использованием всех вещей в других ответах (и из других источников / документации). Что помогло установить стиль панели навигации «Черный» в XIB. Это изменило текст на белый без какого-либо кода.


Answer #5

Если ваш UIViewController находится внутри UINavigationController, вам нужно будет установить BarStyle:

-[UINavigationBar setBarStyle:UIBarStyleBlack]

Оригинальный ответ здесь

https://devforums.apple.com/message/844264#844264


Answer #6

Если вы хотите получить тот же результат с помощью Swift, вы можете использовать этот код в файле AppDelegate.swift:

UINavigationBar.appearance().barStyle = .BlackTranslucent

И текст вашей строки состояния будет белым :-)!


Answer #7

Если у вас встроенный контроллер навигации, созданный с помощью Interface Builder , не забудьте установить следующее в классе, управляющем вашим навигационным контроллером:

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
} 

Это должно быть все, что вам нужно.


Answer #8

Не нужно делать что-то лишнее, просто напишите этот код в вашем viewController и получите статус-баре цвет белый

- (UIStatusBarStyle)preferredStatusBarStyle{return UIStatusBarStyleLightContent;}

Answer #9

Ничто из этого не сработало для меня, так что вот рабочее решение ...

В Info.plist добавьте строку:

UIViewControllerBasedStatusBarAppearance и установите значение NO .

Затем в AppDelegate в didFinishLaunchingWithOptions добавьте следующие строки:

[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleLightContent];

Answer #10

Ответ обновлен для Xcode GM Seed:

  1. В Info.plist поместите View controller-based status bar appearance как NO

  2. В проекте установите:

  3. В ViewDidLoad:

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


Answer #11

Позвольте мне дать вам полный ответ на ваш вопрос. Изменение цвета текста в строке состояния очень просто, но его немного запутано в iOS 7 специально для новичков.

Если вы пытаетесь изменить цвет с черного на белый в Storyboard, выбрав контроллер вида и перейдя на Simulated Metrics с правой стороны, это не сработает, и я не знаю почему. Он должен работать, изменяясь таким образом, но каким-то образом.

Во-вторых, вы не найдете свойство UIViewControllerBasedStatusBarAppearance в своем plist, но по умолчанию его не существует. Вы должны добавить его самостоятельно, нажав на кнопку +, а затем установите значение НЕТ.

Цвет текста в строке состояния ios 7

Наконец, вам нужно перейти в файл AppDelegate.m и добавить следующее в метод didFinishLaunchingWithOptions, добавить следующую строку:

     [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

Это изменит цвет на белый для всех ваших контроллеров. Надеюсь это поможет!


Answer #12

Чтобы подвести итог, отредактируйте свой проект Info.plist и добавьте:

View controller-based status bar appearance : NO

Status bar style : Opaque black style

или если у вас есть сырой ключ / значение plist

UIViewControllerBasedStatusBarAppearance : NO

UIStatusBarStyle : Opaque black style


Answer #13

Это описано в Руководстве по переходу на iOS 7 UI , для которого вам необходим идентификатор разработчика Apple, чтобы получить доступ напрямую. Соответствующая выдержка:

Поскольку строка состояния прозрачна, вид за ней просматривается. [...] Используйте константу UIStatusBarStyle чтобы указать, должно ли содержимое статусной панели быть темным или светлым:

UIStatusBarStyleDefault отображает темное содержимое. [...]

UIStatusBarStyleLightContent отображает световой контент. Используйте, когда темное содержимое находится за панель состояния.

Также возможно интерес:

В iOS 7 вы можете управлять стилем строки состояния с отдельного контроллера vew и изменять его во время запуска приложения. Чтобы принять участие в этом поведении, добавьте ключ UIViewControllerBasedStatusBarAppearance в файл Info.plist приложения и дайте ему значение YES .

Я определенно рекомендую просмотреть документ, который, опять же, вы можете получить доступ с помощью идентификатора разработчика Apple.


Answer #14

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

В зависимости от того, где вам нужен стиль строки состояния, вы всегда должны иметь в виду эти 3 балла:

1) Если вам нужна строка состояния на экране запуска или в других местах, где вы не можете управлять им (не на контроллерах, а на некоторых элементах / моментах, управляемых системой, например, на экране запуска). Вы переходите к настройкам вашего проекта

2) если у вас есть контроллер внутри контроллера навигации. Вы можете изменить его в построителе интерфейса следующим образом:

a) Выберите навигационную панель вашего навигационного контроллера

b) Затем установите стиль панели навигации на «Черный», потому что это означает, что у вас будет «черный» -> темный фон в строке состояния, поэтому он установит строку состояния в белый цвет

Или сделайте это в коде следующим образом

navigationController?.navigationBar.barStyle = UIBarStyle.Black

3) Если у вас есть только контроллер, который должен иметь свой собственный стиль строки состояния, и он не встроен в какую-либо структуру контейнера как UINavigationController

Установите стиль строки состояния в коде для контроллера:


Answer #15

Я использую Xcode 6 beta 5 в проекте Swift для приложения iOS 7.

Вот что я сделал, и он работает:

info.plist:


Answer #16

в info.plist задайте значение поля NO. Отобразите строку состояния на основе контроллера и установите индикатор стиля строки состояния в целевую> общую настройку.


Answer #17

В Swift 3 очень просто всего 2 шага. Перейдите в свой info.plist и измените View controller-based status bar appearance на View controller-based status bar appearance на «NO». Затем в Appdelegate просто добавьте эту строку в метод dofinishlaunchingwithoptions

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        UIApplication.shared.statusBarStyle = .lightContent
        return true
    }

Answer #18

Вам не нужно делать какой-либо код для этого

Вам нужно добавить в поле info.plist ключ «Просмотреть статус панели управления на основе контроллера» следующим образом:

& установите для своего значения значение Boolean & value равным NO. Затем щелкните по настройкам проекта, затем щелкните вкладку «Общие» и в разделе «Информация о развертывании» установите стиль предпочтительной строки состояния в .Light следующим образом:

Это оно.


Answer #19

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

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

  • Стиль строки состояния: Transparent black style (alpha of 0.5)
  • Просмотр состояния панели состояния контроллера: NO
  • Строка состояния изначально скрыта: NO




uistatusbar