Как убедиться, что мой вид ориентирован правильно после полноэкранного видео?

У меня есть универсальное приложение для iPad/iPhone, которое позволяет пользователю смотреть видео, которое затем можно развернуть в полноэкранный режим.

Я реализовал (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration, и в этом методе я выполняю различные вызовы setFrame для своих элементов представления в зависимости от того, находятся ли они в альбомной или портретной ориентации.

Это кажется, что все работает нормально при обычном использовании, то есть вращение вперед и назад работает нормально.

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

Если я затем перехожу в портретный режим, а затем возвращаюсь в альбомный, вид сбрасывается правильно.

Странно часть, у меня есть реализация ted (void)exitedFullscreen:(NSNotification*)notificationи там я распечатываю ориентацию, и она видна правильно. Я также вызываю свой код для сброса элементов представления на основе текущей ориентации, и у меня все еще есть эта проблема.

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

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

Navigation bar goes underneath status bar after rotation during full screen video.

11
задан Mason G. Zhwiti 23 April 2012 в 00:20
поделиться