态
我有一个仅支持肖像模式的应用。为了在全屏强迫景观模式下播放YouTube视频,我尝试展示一个模态视图控制器,该模态控制器包含一个自动播放的Web视图。
对于我已经实施的这样的VC:
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape;
}
此外,在rootviewController(这是TabBarviewController)中
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
NSUInteger orientations = UIInterfaceOrientationMaskPortrait;
if(/*modal view controller with web view is open*/) {
return UIInterfaceOrientationMaskLandscape;
}
return orientations;
}
但是它不起作用,视频旋转,从那时起,从景观模式中解散模态VC,整个应用程序都保持在景观中。
任何帮助都非常感谢!
谢谢,丹
尝试使用此方法:
-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
return UIInterfaceOrientationLandscapeLeft;
}
当您的容器旋转时,诸如YouTube视频之类的内部内容随之旋转。如果无论如何都可以解决这个问题,则必须在旋转时在相反的方向上旋转视频,因此看起来似乎根本没有旋转。
所以类似的东西:(代码还不完整,但是您可以得到这个想法,应用90度旋转。)
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration { // Rotate to landscape
self.view.frame = CGRectMake(0, 0, 480.0, 320.0);
if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight) {
CGAffineTransform transform = self.view.transform;
// Set the center point of the view to the center point of the window's content area.
self.view.center = CGPointMake(160.0, 240.0);
// Rotate the view 90 degrees around its new center point.
transform = CGAffineTransformRotate(transform, (M_PI / 2.0));
self.view.transform = transform;
}
}