仅 iOS 纵向应用程序从 UIWebview youtube 以横向返回

Posted

技术标签:

【中文标题】仅 iOS 纵向应用程序从 UIWebview youtube 以横向返回【英文标题】:iOS portrait only app returns from UIWebview youtube in landscape 【发布时间】:2012-03-28 20:11:21 【问题描述】:

我正在创建一个ios application,但遇到了以下问题:

项目设置为portrait 模式应用程序。 我有一个UIWebview,它会加载一个包含youtube 视频的网页。单击视频时,它会从youtube player 开始。当视频更改为landscape 模式并单击“完成”时,它会返回到UIWebview,在landscape 中显示它。

视频结束后我确实收到了NSNotification,但我无法强制使用portrait 模式。

这应该是不可能的,我怎样才能允许 youtube 处于 landscape 但强制应用程序保持 portrait 模式?还是有其他解决方法?

编辑:

与苹果联系后发现这是一个错误并被报告。

【问题讨论】:

你是如何让 youtube 播放器从 UIWebView 以横向显示的? 【参考方案1】:

我认为您可以按照您所说的使用 NSNotification 并在被调用的方法中暂时使用这行代码来强制视图显示为纵向

- (void)YourMethodCalledByNSNotification

    UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;

    if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight || orientation == UIInterfaceOrientationPortraitUpsideDown) 
    
        [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];
    

希望有帮助

【讨论】:

【参考方案2】:
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

是私有 API 。我不建议使用它。

    UIWindow *window = [[UIApplication sharedApplication] keyWindow];
    UIView *view = [window.subviews objectAtIndex:0];
    [view removeFromSuperview];
    [window insertSubview:view atIndex:0];

我认为是更好的方式。它会强制应用调整其方向。

【讨论】:

以上是关于仅 iOS 纵向应用程序从 UIWebview youtube 以横向返回的主要内容,如果未能解决你的问题,请参考以下文章

当方向改变时,在 UIWebView 中查找横向和纵向的图像位置

当视图从纵向更改为横向时,方向不会改变

从 UITableView 加载 UIWebView 仅第一次有效

将 iOS Hybrid App 从 UIWebView 迁移到 WKWebview

PhoneGap 上的 childBrowser 仅纵向显示

iOS 6 旋转与来自 UIWebView 的 MPMoviePlayerViewController