Мое приложение имеет темный фон, но в iOS 7 строка состояния стала прозрачной. Поэтому я ничего не вижу, только зеленый индикатор батареи в углу. Как я могу изменить цвет текста строки состояния на белый, как на главном экране?
Установите для параметра UIViewControllerBasedStatusBarAppearance
значение YES
в файле .plist.
В viewDidLoad
сделайте [self setNeedsStatusBarAppearanceUpdate];
.
Добавьте следующий метод:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
Примечание: Это не работает для контроллеров внутри UINavigationController
, пожалуйста, смотрите Tyson's comment below :)
Swift 3 - Это будет работать для контроллеров внутри UINavigationController
. Добавьте этот код внутрь вашего контроллера.
// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Swift 5 и SwiftUI.
Для SwiftUI создайте новый swift-файл под названием HostingController.swift
.
import Foundation
import UIKit
import SwiftUI
class HostingController: UIHostingController<ContentView> {
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
Затем измените следующие строки кода в файле SceneDelegate.swift
window.rootViewController = UIHostingController(rootView: ContentView())
на
window.rootViewController = HostingController(rootView: ContentView())
Кроме того, вы можете отказаться от представление-контроллер на основе статус-бар внешний вид:
к
нетв инфо свой
.файл plist`.[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Примечание: этот метод был осужден в iOS9. PreferredStatusBarStyle использовать на для UIViewController вместо этого. (см. библиотека разработчика Apple)
Вы можете сделать это без написания какого-либо кода! <БР/> Выполните следующие действия, чтобы сделать статус бар цвет текста белый через все приложения
На вас проект plist в файл:
Примечание: наиболее upvoted ответ не работает для iOS 7 / 8
В Инфо.plist в комплект 'контроллер на основе статус-бар внешний вид' как не
В файле AppDelegate добавить
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
для
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
......
...
}
Это решение работает для iOS 7 / 8
Для меня ничего не было с помощью все вещи в другие ответы (и из других источников/документации). Что же поможет, чтобы задать стиль панели навигации, чтобы "Черный" в XIB. Это изменило текст белый без какого-либо кода.
Это не сработало для меня, так вот рабочее решение...
В Информация.файл plist
, добавьте строку:
UIViewControllerBasedStatusBarAppearance
, и установите значение "нет".
Затем в файле AppDelegate в didFinishLaunchingWithOptions в`, добавьте эти строки:
[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleLightContent];
Вам не нужно делать каких-либо код для этого
Нужно добавить, что "контроллер на основе статус-бар внешний вид на" ключ в Info.plist как следующее:
& задать его тип значения булево & значение "нет". Затем нажмите на настройки проекта,затем щелкните на вкладке Общие & под информация развертывания установить предпочтительный статус бар для .Света следующим образом:
Вот и все.
Всего два шага следующим образом:
Шаг 1:
На вкладке Информация о цели проекта, добавить строку:
UIViewControllerBasedStatusBarAppearance
, установите значение "нет".
Шаг 2:
В файле AppDelegate проекта.м
:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
…
[application setStatusBarStyle:UIStatusBarStyleLightContent];
…
}
Это работает в Голден мастер на iOS 7 и Xcode 5 и iOS7 семян ГМ СДК выпущен 18 сентября 2013 года (по крайней мере с навигационным контроллером скрыты):
Набор в UIViewControllerBasedStatusBarAppearance
на нет
в
Информация.файл plist
.
В метод viewDidLoad метод или везде, где вы хотите изменить
статус бар в стиле:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
В вашем случае для UIViewController внутри UINavigationController вам придется установить BarStyle:
-[UINavigationBar setBarStyle:UIBarStyleBlack]
Оригинальный ответ здесь
Если у вас есть встроенный контроллер навигации, созданные с помощью интерфейс построителя, обязательно задайте следующие в класс, который управляет ваш навигационный контроллер:
-(UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
Это должно быть все, что вам нужно.
Я'м, используя в Xcode 6 бета 5 на Свифт проект, для приложение iOS 7.
Вот что я сделал, и это работает:
информация.файл plist:
В Файле AppDelegate.м добавить следующее.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}
И в файл plist, набор 'контроллер на основе статус-бар внешний вид' не.
Ну, это действительно работает как кусок торта для меня.
Перейти в приложение'ы информация.файл plist
.
Вид-Контроллер на основе статус-бар внешний вид
к нет
к
UIStatusBarStyleLightContent`Затем перейти в приложение'ы делегат и вставьте следующий код, где вы установите свой Windows'ы RootViewController.
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
{
UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0,320, 20)];
view.backgroundColor=[UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:1.0];
[self.window.rootViewController.view addSubview:view];
}
Бинго. Это's работает для меня.
Просто В Файле AppDelegate
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Перейти к "Проект" - > цель
,
Тогда статус бар установить `в
свет`. Это делает статус-бар белая с экрана запуска.
![Установка] Проект[1]
Затем посмотреть контроллер на основе статус-бар внешний видравно
нетВ
информация.файл plist`.
В Свифт-3 очень легко, просто с 2 шагов.
Перейти к вашей информации.plist и изменить на основе контроллера просмотреть ключ статус бар внешний вид
к "нет".
Затем в файле AppDelegate просто добавьте эту строку в метод didFinishLaunchingWithOptions
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UIApplication.shared.statusBarStyle = .lightContent
return true
}
это рекомендуется в iOS9 теперь вы должны сделать переопределить это свойство в rootviewcontroller
делать это рекомендуется в iOS 9 должны сделать это на rootviewcontroller
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
ОС iOS 7 позволяет отдельным видом контроллеров, чтобы определить внешний вид строки состояния, как описано в документации для разработчиков Apple:
для iOS 7 дает вид контроллеров возможность настроить стиль строки состояния во время выполнения приложения. Хороший способ, чтобы динамически изменять статус бар для реализации
preferredStatusBarStyle
а—в блок—обновление анимации статус-бар внешний вид и называем setNeedsStatusBarAppearanceUpdate`.
Устанавливая статус бар появление в мире-это двухэтапный процесс.
Во-первых, нужно сказать, iOS, что вы Дон'т хотите, чтобы установить статус-бар внешний вид на вид на вид на основании.
Затем вы должны взять на себя ответственность и фактически установила новый мировой статус баре.
Чтобы отключить вид-под-вид управления в строке состояния, вы'll необходимо, чтобы установить контроллер в виде недвижимости статус-бар внешний вид "во вкладке" Информация.файл plist`.
Откройте навигатор проекта и выбрать проект для своего приложения iOS, а затем выберите вкладку Информация.
Наведите курсор на строку, а затем щелкните знак "плюс", который появляется, чтобы добавить новое свойство в свой .файл plist
.
Введите контроллер на основе статус-бар внешний вид в поле ключа, то убедитесь, что в поле тип имеет значение
логическое`. Наконец, введите " нет " в поле Значение.
Чтобы установить глобальный стиль для строки состояния, добавить еще одно свойство на вкладке Инфо с ключом статус бар в стиле
, тип String
и значение непрозрачный черный стиль
.
Здесь's в своем блоге немного более подробно и некоторые примеры кода:
http://codebleep.com/setting-the-status-bar-text-color-in-ios-7/
Не нужно делать каких-то лишних , просто напишите такой код в файле ViewController и сделать статус бар цвет белый
- (UIStatusBarStyle)preferredStatusBarStyle{return UIStatusBarStyleLightContent;}
Ответ для обновлено для Xcode семян ГМ:
В Информация.файл plist
положить на основе контроллера вид состояние внешний вид бар
как нет
В проекте, установить:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];