objective-c - 如何旋转嵌入UIWebView的视频(iOS 7)?

 雅芳07866 发布于 2022-10-26 16:07

我在开发的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)?

1 个回答
  • 答案:
    Denisia
    我自己找到了解决方法!在AppDelegate中执行如下方法,成功了!我的问题是,开始的时候,我没有检查右视图控制器(view controller)。

    - (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
    试试这个:

    -(BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
    {
    return YES;
    }
    

    如果你想在屏幕不显示视频的时候,不让UIViewController旋转,就使用下面的:

    -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
    if(webView && webView.superView) return YES;
    return UIInterfaceOrientationIsPortrait(interfaceOrientation);
    }
    
    2022-10-27 01:12 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有