2010-08-27 3 views
0

У меня возникла проблема, когда некоторые из моих представлений выглядят некорректными при загрузке приложения до тех пор, пока вы не повернете устройство, а некоторые из них выглядят корректно после загрузки, но некорректно после поворота.Приложение MonoTouch - Проблемы с макетом с поворотом

У меня есть окно, которое загружается с помощью View A и после нажатия кнопки отделяет View A от окна (RemoveFromSuperView) и загружает View B и добавляет его в окно.

View A - имеет пустое пространство внизу высоты строки состояния, которая фиксируется при вращении устройства.

View B - выглядит правильно при нагрузке, но имеет часть нижней части, отрубленной после поворота устройства.

Что может вызвать это странное поведение?

Если я просматриваю свои XIB-файлы из Interface Builder через File-> Simulate Interface, они работают нормально. Но они не работают из моего приложения, то же самое происходит и на самом устройстве.

PS - Я не думаю, что у меня есть какой-либо пользовательский код, который должен вызвать это, я просто создал Views A и B в IB и подключил их к подклассам контроллеров, чтобы я мог переопределить ShouldAutorotateToInterfaceOrientation.

ответ

0

Это потому, что мои контроллеры представлений создаются из кода.

Я переключился на мои контроллеры, созданные из XIB-файлов, по-видимому, они были изменены правильно и при выполнении этой строки учитывают строку состояния.

Я также должен был проверить, что в окне «Интерфейс Builder» было указано «Resize View From NIB» с соответствующим дочерним именем NIB. Вы можете пропустить этот шаг, если ваш контроллер не выложен во втором XIB-файле.

+0

Другая ситуация, с которой я столкнулся, заключается в том, что представление TabBarController является под-представлением другого контроллера. Чтобы устранить проблему, я установил свойство View родительского контроллера в представление TabBarController. Это кажется хакерским для того, что я пытался сделать, но я не мог найти другого способа исправить это. – jonathanpeppers