У меня есть универсальное приложение ipad/iphone, которое позволяет пользователю смотреть видео, которое затем можно развернуть в полноэкранном режиме.
Я реализовал (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
, и в этом методе я выполняю различные вызовы setFrame в моих элементах представления в зависимости от того, находятся ли они в альбомной или портретной ориентации.
Это, кажется, работает нормально при нормальном использовании, т.е. вращение назад и вперед отлично работает.
Но если пользователь начинает в портретном режиме, запускает видео, переходит в полноэкранный режим, переходит в альбомную ориентацию, а затем видео останавливается - элементы часто не изменяются правильно. Они выглядят как размер, как если бы они были портретным режимом.
Если я затем перейду в портретный режим, а затем вернусь к пейзажу, представление сбрасывается правильно.
Странная часть, я реализовал (void)exitedFullscreen:(NSNotification*)notification
, и там я распечатываю ориентацию, и она видна правильно. Я также вызываю свой код в reset элементы представления, основанные на текущей ориентации, и у меня по-прежнему возникает эта проблема.
Другая связанная с этим проблема иногда связана с вращением, мои взгляды оказываются слишком далеко по экрану, фактически переходящие под панель состояния в верхней части устройства.
Изменить Вот последний пример. Я вращаюсь в альбомном режиме во время полноэкранного воспроизведения видео, а затем, когда я выхожу из полноэкранного видео, вы можете увидеть проблему с навигационной панелью в верхней части представления.