【问题标题】:UIWebView: application rotationUIWebView:应用程序旋转
【发布时间】:2013-01-22 17:29:35
【问题描述】:

我想在我的 UIWebView 中打开嵌入 youtube 视频,我使用下面的代码来实现它。

videoURL = @"http://www.youtube.com/embed/A9kCPgVIbH4";
videoView = [[UIWebView alloc] initWithFrame:CGRectMake(0, -30, self.view.frame.size.width, 210)];
videoView.scrollView.scrollEnabled = NO;
videoView.backgroundColor = [UIColor clearColor];
videoView.opaque = NO;
videoHTML = [NSString stringWithFormat:@"\
             <html>\
             <head>\
             <style type=\"text/css\">\
             iframe {position:absolute; margin-top:0px;}\
             body {background-color:#000; margin:0;}\
             </style>\
             </head>\
             <body>\
             <iframe width=\"100%%\" height=\"240px\" src=\"%@\" frameborder=\"0\" allowfullscreen></iframe>\
             </body>\
             </html>", videoURL];
[self.tableView addSubview:videoView];
[videoView loadHTMLString:videoHTML baseURL:nil];

但是,有一个大问题。我的应用程序仅使用 UIInterfaceOrientationPortrait,但是当我单击此 UIWebView youtube 播放器时,它会以全屏模式打开,并且我能够将视频旋转到横向模式。看完视频后,我点击“返回”,然后开始我所有的问题。我的应用程序也旋转到横向模式,因此看起来不太好。也许有人知道如何解决这个问题?只是如何阻止 UIWebView 旋转,或者根本如何阻止旋转。

在 Info-plist 中,我已经删除了除纵向之外的所有方向,但没有任何改变。期待回复,谢谢!

【问题讨论】:

    标签: iphone xcode uiwebview uiinterfaceorientation


    【解决方案1】:

    通过查看您的应用委托并实现supportedInterfaceOrientationsForWindow 以仅返回UIInterfaceOrientationMaskPortrait,您可能会更幸运。

    你也可以在你的视图控制器中查看supportedInterfaceOrientations函数,让它只返回肖像蒙版,或者实现shouldAutorotate返回NO。

    【讨论】:

    • 我尝试设置shouldAutorotate,并且在supportedInterfaceOrientations中我已经删除了除纵向之外的所有方向。
    • 然后,您可能会考虑添加几个事件侦听器,用于当您从全屏模式返回时以及当设备旋转并查看顶层视图控制器的框架时。此外,请注意您的视图控制器是从全屏模式返回时的主控制器。我相信我在处理某些相机/相机胶卷功能时遇到过类似的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    相关资源
    最近更新 更多