it-swarm.com.ru

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

Я не могу изменить цвет текста в строке состояния в iOS 7 SDK. В настоящее время он черный, и я хочу, чтобы он был белым для всех моих контроллеров представления в раскадровке.

Я видел несколько вопросов о StackOverflow, таких как ЭТО , ЭТО и ЭТО , но они не сильно помогли. Также может быть связано с тем, что я не могу найти UIViewControllerBasedStatusBarAppearance to YES в моем файле plist.

Может кто-нибудь сказать мне правильный способ установить цвет текста строки состояния на белый для всех контроллеров представления в раскадровке? Заранее спасибо!

60
AJ112

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

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

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

ios 7 status bar text color

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

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

199
KC.

Если вы ищете UIViewControllerBasedStatusBarAppearance, вам нужно нажать на маленький знак плюс, который появляется, когда вы наводите курсор мыши на корневой элемент в вашем файле plist.

plist file

После этого появится новая строка - выберите "Показать внешний вид строки состояния на основе контроллера" из раскрывающегося списка и установите NO в качестве значения. (Это дружественное имя объявлено внутри как UIViewControllerBasedStatusBarAppearance)

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
42
AbdullahC

Установите для UIViewControllerBasedStatusBarAppearance значение YES в списке

В viewDidLoad сделайте [self setNeedsStatusBarAppearanceUpdate];

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

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
}
24
Claudia Mardegan

По умолчанию это YES, поэтому вы его не увидите. Вам нужно добавить

UIViewControllerBasedStatusBarAppearance

в ваш список и установите его NO.

Тогда вы можете позвонить

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
16
Leo Natan