Установить цвет строки состояния в Iphone

Вопрос:

Привет, Я разрабатываю небольшое приложение Iphone, в котором я даю цвет для моей панели навигации, как это

[self.navigationController.navigationBar setTranslucent:NO];
[self.navigationController.navigationBar setBarTintColor:[UIColor redColor]];

Но из-за этого моя строка состояния также становится красного цвета. Я хочу изменить его на белый. Я старался, но это не работает для меня.

в файле info.plist я устанавливаю View controller-based status bar appearance = "NO"

затем в application:didFinishLaunchingWithOptions: установить [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

Затем в UIViewcontroller

- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}

Но выше методы не работают для меня. Моя панель навигации и строка состояния того же цвета. Я хочу сделать цвет строки состояния белым. Мое приложение очень просто с одним контроллером UIView с одним контроллером навигации. Я делаю что-то неправильно? Нужна помощь. Спасибо.

Лучший ответ:

UIStatusBarStyleLightContent сообщает строке состояния отображать светлый текст, но он все еще прозрачен. И поскольку контроллер навигации сообщает, что позиция его навигационной панели является UIBarPositionTopAttached, вы видите эффект растяжения UIBarPositionTopAttached панели навигации под строкой состояния.

Вот две идеи, как добиться того, что вы ищете:

Подкласс навигационного контроллера, реализация - (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar и возврат UIBarPositionTop. Это приведет к тому, что панель навигации не будет растягиваться под строкой состояния, и вместо этого отобразится надзор панели навигации (обычно белый).

Или, лучше, подклассифицируйте навигационный контроллер, добавьте subview высотой 20pt над навигационной панелью и в viewDidLayoutSubviews, расположите и измените размер подвью правильно на ориентацию. Теперь вы можете указать любой цвет, который вы хотели бы видеть, и это будет цвет строки состояния.

Изменить. Исходя из комментариев, подход positionForBar: может не работать.

Оцените статью
TechArks.Ru
Добавить комментарий