Maison > Questions et réponses > le corps du texte
我在开发的APP是面向肖像的,但是当运行视频(内嵌在webview)的时候,我需要在风景模式下重新定位视频。应该怎么解决这一问题呢?我找到了一种解决方案,似乎可以解决问题。我觉得这是因为iOS 7的更新,但是我不确定。所以,这是我先前使用的,但是现在不起作用了,因为窗口和类名总是nil。
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
id presentedViewController = [window.rootViewController presentedViewController];
NSString *className = presentedViewController ? NSStringFromClass([presentedViewController class]) : nil;
if (window && [className isEqualToString:@"MPInlineVideoFullscreenViewController"]) {
return UIInterfaceOrientationMaskAll;
} else {
return UIInterfaceOrientationMaskPortrait;
}
原问题:How to rotate a video embed in UIWebView (for iOS 7 only)?
阿神2017-04-22 09:01:48
Réponse :
Dénisia
J'ai trouvé la solution moi-même ! Exécutez la méthode suivante dans AppDelegate et elle réussit ! Mon problème est qu'au début, je n'ai pas vérifié le bon contrôleur de vue.
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
NSString *className = NSStringFromClass([window class]);
if ([((UINavigationController *)window.rootViewController) respondsToSelector:@selector(visibleViewController)]) {
className = NSStringFromClass([((UINavigationController *)window.rootViewController).visibleViewController class]);
}
if ([className isEqualToString:@"MPFullscreenWindow"] || [className isEqualToString:@"MPInlineVideoFullscreenViewController"]) {
return UIInterfaceOrientationMaskAll;
} else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
return UIInterfaceOrientationMaskLandscape;
} else {
return UIInterfaceOrientationMaskPortrait;
}
Immi
Essayez ceci :
-(BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
Si vous souhaitez empêcher l'UIViewController de tourner lorsque l'écran n'affiche pas la vidéo, utilisez ce qui suit :
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if(webView && webView.superView) return YES;
return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}