У меня есть требование, когда интерфейс, который содержит видео, является только портретным, но когда пользователь поворачивается в горизонтальной плоскости, видео переходит в полноэкранный режим и начинает воспроизводиться тогда, когда видео подходит к концу или пользователь нажимает кнопку «Готово», видео Выход из полноэкранного режима и интерфейс по-прежнему портретный. Я пытался использовать shouldAutorotateToInterfaceOrientation: методы, которые работают для запуска видео. Но я не могу заставить экран вращаться снова. Вместо этого я решил использовать shouldAutorotateToInterfaceOrientation: и создать свой собственный контроллер представления для обработки только видео и использовать - [UIView setTransform:] для поворота видео, но вращения работают только в том случае, если я отключаю переход к полноэкранному режиму является частью моего кода
- (void)deviceOrientationDidChangeNotification:(NSNotification *)aNotification
{
switch ([[UIDevice currentDevice] orientation])
{
case UIDeviceOrientationPortrait:
case UIDeviceOrientationPortraitUpsideDown:
[self setFullscreen:NO animated:YES];
break;
case UIDeviceOrientationLandscapeLeft:
case UIDeviceOrientationLandscapeRight:
[self.moviePlayerController play];
[self setFullscreen:YES animated:YES];
break;
default:
break;
}
}
- (void)setFullscreen:(BOOL)aFullScreen animated:(BOOL)anAnimated
{
if( aFullScreen )
{
switch ([[UIDevice currentDevice] orientation])
{
case UIDeviceOrientationLandscapeLeft:
case UIDeviceOrientationPortraitUpsideDown:
self.moviePlayerController.view.transform = CGAffineTransformMakeRotation(M_PI_2);
break;
case UIDeviceOrientationPortrait:
case UIDeviceOrientationLandscapeRight:
self.moviePlayerController.view.transform = CGAffineTransformMakeRotation(M_PI+M_PI_2);
break;
default:
break;
}
}
else
self.moviePlayerController.view.transform = CGAffineTransformMakeRotation(0);
[self.moviePlayerController setFullscreen:aFullScreen animated:anAnimated]; // comment this out and rotation works
}
Кто-нибудь может дать какой-нибудь совет, теперь я думаю, что мне нужно осуществить свой собственный переход в полноэкранный режим, чтобы заставить его работать, но я думал, что сначала получу некоторую обратную связь.