Строка состояния цвет текста iOS 7 [дубликат]


этот вопрос уже есть ответ здесь:

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

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

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

4 59

4 ответа:

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

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

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

ios 7 status bar text color

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

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

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

plist file

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

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

установить UIViewControllerBasedStatusBarAppearance да в plist

на viewDidLoad сделать [self setNeedsStatusBarAppearanceUpdate];

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

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
}

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

UIViewControllerBasedStatusBarAppearance

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

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];