Как скрытие UIStatusBar относится к отображаемым UIViews? - PullRequest
3 голосов
/ 30 июля 2009

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

Даже если я установлю рамку модального вида на 0, -20 320 480 после появления вида, он отрезает верхнюю часть вида.

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

Ответы [ 2 ]

2 голосов
/ 02 августа 2009

Видя из вашего комментария ниже, что вы ориентируетесь на iPhone OS 2.x, у меня есть предложение, которое может помочь.

Перед тем, как представить свой модальный вид, сделайте что-то вроде этого:

  [[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
  [[self view] setFrame:CGRectMake(0, 0, 320, 480)];

Убедитесь, что ваш модальный вид на самом деле имеет высоту 480px - однажды меня одурачило пустое пространство в 20px внизу. Оказалось, это потому, что мой взгляд все еще был 460 пикселей в высоту (для учета строки состояния), поэтому код на самом деле работал, но мой взгляд был неправильной высоты.

При скрытии модального вида это работает:

[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];
[[self view] setFrame:CGRectMake(0, 20, 320, 460)];

Возможно, вам придется немного изменить код, если вы используете presentModalViewController - я попробовал это с помощью -addSubview, потому что я использовал собственную анимацию. Но основные принципы должны быть одинаковыми (т.е. изменение фрейма родительского представления).

2 голосов
/ 30 июля 2009

Вы просматривали свойство wantFullScreenLayout на UIViewControllers?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...