рамка строки состояния придерживается книжной ориентации и закрывает окно - PullRequest
2 голосов
/ 29 октября 2011

Я работаю над приложением для iPad, которое должно поддерживать все ориентации. Я не использую перья. У меня есть UIWindow, которое выкладывает четыре вида:

Два из них занимают полную ширину, но не слишком большую высоту.
Два других занимают большую часть высоты и используют один и тот же origin.x. Они не перекрываются.

Я определяю один вид как подпредставление главного окна, а остальное - в window.view.

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

Я заметил красные очки информативная статья. Но это не совсем та же проблема. Это отличается в том смысле, что подходу красных очков удалось покрыть полосу строки состояния, установив основной вид в качестве подпредставления окна. Я выбрал этот подход, но проблема остается.

Я попытался перефразировать и перецентрировать кадр window.view в willRotateToInterfaceOrientation :: с небольшой удачей. Я убедился, что новые кадры / центры - это то, что я ожидал. Похоже, что на заднем плане происходит некоторое перефреймирование.

Я не уверен, что думать на этом этапе ... Я надеюсь, что кто-то может пролить свет на эту тему.

1 Ответ

1 голос
/ 29 октября 2011

Наконец-то!Я получил согласованное выравнивание представлений.
Оказывается, проблема была в didFinishLaunchingWithOptions:

Проблема заключалась в том, что я инициализировал свое UIWindow через initWithFrame: [[UIScreen mainScreen] applicationFrame];

КогдаЯ инициализировал использование init вместо того, чтобы представления были расположены так, как ожидалосьЭто работает только тогда, когда я оставляю код рефрейминга в willRotateToInterfaceOrientation: (как отмечено выше).

В willRotateToInterfaceOrientation :, я рассчитал и установил правильный кадр для каждого вида, затем интегрировал преобразование в анимацию вращения с помощью UIView animateWithDuration:::::

Я установил новые кадры в аргументе выбора от второго до последнего в animateWithDuration.

Надеюсь, это кому-нибудь поможет ...

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