Трудно установить цвет в строке состояния (iOS7) с прозрачностью

Я хотел бы, чтобы моя строка состояния была черной и прозрачной на 25%. Я так понимаю, что строка состояния по умолчанию прозрачная, поэтому и приобретает цвет фона. Однако, когда я устанавливаю представления backgroundColor:

self.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:.75f];

Строка состояния полностью черная.

У меня есть панель инструментов, для которой я установил черный цвет с альфа-каналом 0,75, и я просто пытаюсь заставить их совпадать:

self.toolBar.tintColor = [UIColor whiteColor];
self.toolBar.barTintColor = [UIColor blackColor];
self.toolBar.alpha = .75f;

Есть ли причина, по которой цвет фона в UIView не соответствует альфа-компоненту?

введите здесь описание изображения

ИЗМЕНИТЬ:

На основании комментария этот вид не перекрывает строку состояния. Если я устанавливаю фон зеленым, это показывает, что он работает:

введите здесь описание изображения

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

self.view.backgroundColor = [[UIColor greenColor] colorWithAlphaComponent:.25];

введите здесь описание изображения


person lostintranslation    schedule 09.09.2014    source источник


Ответы (1)


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

Если представление находит под строкой состояния, вам необходимо установить положение панели инструментов на Верхнее прикрепленное, чтобы ее высота увеличивалась под строкой состояния. Мы не должны видеть отдельный цвет для строки состояния; он должен перекрывать ваш интерфейс, располагаясь перед верхней частью панели инструментов.

person matt    schedule 09.09.2014
comment
Я объясняю расположение панели для верхней панели здесь: stackoverflow.com/a/22232805/341994 Этот ответ касается панели навигации. но это точно так же, как верхняя панель инструментов на iPad. - person matt; 09.09.2014
comment
Я не понимаю, что вы имеете в виду. Если я установлю цвет фона моего представления на зеленый, строка состояния станет зеленой. Однако почему-то под этим зеленым находится черный. Поэтому, если я установлю его на зеленый с альфа-каналом 0,25, он будет темно-зеленым, поскольку черный просвечивает. Даже если я избавлюсь от панели инструментов и просто перейду к пустому виду, который заполняет весь экран, я не могу получить черный цвет с прозрачностью 0,75. - person lostintranslation; 09.09.2014
comment
Я уже говорил вам, почему. Это потому, что за ним черное окно. Зеленый с альфой 0,25 над черным — темно-зеленый. - Тем не менее, мой ответ по-прежнему правильный. Если ваше представление на самом деле перекрывает строку состояния, то оно должно выглядеть так. У вас НЕ должно быть отдельного цвета строки состояния; панель инструментов должна располагаться под строкой состояния, и я уже объяснил вам, как это сделать. Ваши второй и третий скриншоты неправильные. Сконцентрируйтесь на фиксации высоты панели инструментов, и все будет хорошо. - person matt; 09.09.2014