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

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

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

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

Ответ 1

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

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

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

ios 7 status bar text color

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

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

Ответ 2

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

plist file

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

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

Ответ 3

Установите UIViewControllerBasedStatusBarAppearance на YES в plist

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

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

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
}

Ответ 4

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

UIViewControllerBasedStatusBarAppearance

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

Затем вы можете вызвать

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];