Вопрос

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

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

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

Это было полезно?

Решение

Исходя из вашего комментария ниже, что вы ориентируетесь на 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 , потому что я использовал собственную анимацию. Но базовые принципы должны быть одинаковыми (то есть изменение рамки родительского представления).

Другие советы

Посмотрели ли вы wantFullScreenLayout свойство в UIViewControllers?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top