Почему моя позиция UIView меняется так, как я этого не ожидаю? - PullRequest
1 голос
/ 10 мая 2010

Мое приложение для iPad не работает так, как я ожидаю, при запуске и повороте изображений.

AppDelegate имеет mainController.view как подвид и mainController имеет splashController.view в качестве вложенного представления

mainController отвечает на willAnimateRotationToInterfaceOrientation, вызывая его метод контроллера подчиненного представления с тем же именем (а затем и супер-метод).

У splashController есть изображение с разрешением 1024 x 1024. Поэтому я пытаюсь расположить его по центру в подвиде.

При повороте я настраиваю границы всех представлений (в методе willAnimateRotation ...) следующим образом:

Пейзаж 1024 x 768
Портрет 768 х 1024

Затем я также центрирую представления тем же методом, разделив вышеуказанные значения.

На данный момент я не беспокоюсь о деталях строки состояния 10 пикселей.

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

Когда я запускаю или вращаюсь в альбомной ориентации, вид сбивается. Изображение слишком далеко влево / вверх или вправо / вниз, и хотя я изменил центр. (а не отрегулированный кадр).

Почему это происходит только для пейзажа влево или вправо, а не для портрета или портрета вверх ногами?

1 Ответ

0 голосов
/ 19 апреля 2011

Не знаю, почему это происходит в некоторых случаях, но не в других, однако я думаю, что вы могли бы сделать жизнь намного проще для себя, просто установив маску авторазмера для вашего splashView, а не перехватывая вращение и заново настраивая представление .

попробуйте установить их во время загрузки:

splashView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
splashView.contentMode = UIViewContentModeCenter;

и откажитесь от кода willAnimateRotate ...

Dave

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