Скрытие UIStatusBar оставляет пустую синюю полосу на экране - PullRequest
2 голосов
/ 26 августа 2011

У меня есть портретное приложение для iPhone, в котором скрыта панель навигации, управляющая потоком между представлениями. В одном представлении мне нужно повернуть представление на 90 градусов в горизонтальной плоскости, и я хочу скрыть строку состояния.

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

Я попытался поиграть с размером представления, но он уже настроен на полный размер экрана. Кажется, эта синяя полоса выше моего взгляда.

Может быть потому, что я скрыл и панель навигации, и строку состояния?

Любая помощь, высоко ценится.

Dunc

1 Ответ

3 голосов
/ 26 августа 2011

Если вы используете UINavigationController со скрытой панелью навигации (UINavigationBar ничего не делает сам по себе), то вам нужно настроить кадр контроллера в окне, а не вид вашего контроллера в навигационном контроллере. Вот ваша иерархия представлений:

window (root view)
  - statusBar
  - navigation controller's view
    - view controller's view

Попробуйте это в вашем контроллере представления, когда вы скрываете строку состояния:

[[[self navigationController] view] setFrame:[[UIScreen mainScreen] bounds]];

Или, если вы хотите использовать рамку окна:

[[[self navigationController] view] setFrame:[[[UIApplication sharedApplication] keyWindow] bounds]];
...