Вопрос по ios, ios6, uitoolbar, uinavigationbar, uistatusbar – Задать цвет оттенка строки состояния

1

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

Однако, с одной стороны, я скрываю свою панель навигации примерно так:

[self.navigationController setNavigationBarHidden:YES];

Это вviewWillAppear Метод и представление доступны, так как это одна из вкладок моего приложения.

Причина, по которой я это скрываю, заключается в том, что я хотел бы поставить панель инструментов (примерно с 6 кнопками) на ее место.

Я установил цвет оттенка на моей панели инструментов, однако строка состояния в этом представлении всегда черная. Есть ли способ переустановить строку состояния для этого вида или есть лучший способ скрыть панель навигации, чтобы сохранить оттенок строки состояния.

ОБНОВИТЬ Я где-то читал, что, когда тонировка установлена по умолчанию, цвет строки состояния будет цветом самого нижнего пикселя в заголовке.

Я попытался скрыть панель навигации в раскадровках, а также попытался изменить цвет оттенка на 'Пользовательские» но это также не имело никакого эффекта.

Эти два скриншота могут иллюстрировать мою проблему. Переключение панели навигации меняет цвет строки состояния. Это навигационный контроллер, в который встроен данный вид.

да, смотрите обновленный ответ. Patrick
... так вы имеете в виду, что скрытие панели навигации меняет цвет строки состояния на черный? applefreak

Ваш Ответ

3   ответа
0

Если вы используете iOS 6.0, вы можете установить цвет строки состояния через plist-файл. Увидеть -Как установить оттенок строки состояния в iOS 6?

Из примечаний к выпуску iOS 6;

Статус бар

Теперь в вашем приложении можно настроить параметры оттенка строки состояния.Файл Info.plist. Вы можете сделать это, чтобы убедиться, что цвет строки состояния соответствует вашему приложениюs Цвет панели навигации при запуске. Чтобы установить оттенок строки состояния, добавьте ключ UIStatusBarTintParameters в файл Info.plist. Значением этого ключа является словарь с соответствующими значениями, описывающими панель навигации, которую ваше приложение имеет при запуске. Внутри словаря должен быть ключ UINavigationBar, значение которого также является словарем. Этот словарь содержит начальную панель навигацииs style (с помощью клавиши Style) и указывает, является ли он полупрозрачным (с помощью кнопки Translucent). Вы также можете указать свою панель навигацииs оттенок цвета (с помощью клавиши TintColor) или имя пользовательского фонового изображения (с помощью клавиши BackgroundImage).

[РЕДАКТИРОВАТЬ]

Похоже, в iOS 6 цвет строки состояния автоматически определяется цветом панели навигации. Перед тем, как скрыть панель навигации, вы можете установить цвет панели навигации по умолчанию и посмотреть, имеет ли это значение.

Я пробовал это, но безрезультатно:[self.navigationController.navigationBar setTintColor:[UIColor redColor]]; [self.navigationController setNavigationBarHidden:YES]; Patrick
6

Аааа !!! У меня есть рабочее решение ... хотя и очень грязное и временное решение.

Просто скройте панель навигации в раскадровке (как показано на изображении, о котором идет речь - снимите флажокShows Navigation Bar).Перетащите панель навигации в представление.Установите этоAlpha до 0 и снимите флажок -User Interaction EnabledНЕ ДЕЛАЙТЕ СКРЫТОГО

Убедитесь, что панель навигации находится сверху - как показано на следующем рисунке.

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

Надеемся, что более гибкий / приятный способ сделать это будет в недавнем обновлении XCode.

Главный совет: Чтобы панель инструментов выглядела как панель навигации:

Расположите панель инструментов -1 на оси YСоздайте метку (без текста) с высотой 44px, шириной 320px и позицией 0,0. Это будет нижняя граница для панели вкладок. Для достижения наилучших результатов сделайте снимок экрана со страницей вашего приложения и используйте программное обеспечение, чтобы получить цвет границы - это самая темная часть вкладки до начала тени (используйте этот цвет в качестве фона метки).
Как я скажу тебе несколько раз? :) Я собирался предложить панель навигации высотой 1 пиксель перед вашей панелью инструментов; это работает (stackoverflow.com/a/14613259/341994). Но ваше решение, навигация с альфа 0, это то, о чем я никогда бы не подумал. matt
:-) Интересно! applefreak
0
Change statusBarStyle of application-
[[UIApplication sharedApplication] 
      setStatusBarStyle:UIStatusBarStyleDefault animated:NO];
Я думал об этом, но это, к сожалению, не имеет никакого эффекта. Patrick

Похожие вопросы