我在当前的项目中遇到了一个问题,所以我创建了一个简单的应用程序,看看我是否可以隔离问题。在我的app委托中,我隐藏了状态栏。
[application setStatusBarHidden:YES animated:NO];
在我的单视图控制器中,我有以下代码:
- (void)loadVideo
{
// HTML to embed YouTube video
NSString *youTubeVideoHTML = @"<html><head>\
<body style=\"margin:0\">\
<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";
// Populate HTML with the URL and requested frame size
NSString *html = [NSString stringWithFormat:youTubeVideoHTML, @"http://www.youtube.com/watch?v=VDRoBnL1gRg", 500, 500];
// Load the html into the webview
[self.webview loadHTMLString:html baseURL:nil];
}
该应用也设置为自动旋转。
现在,问题出现了:当我播放YouTube视频时,进入全屏模式,将设备旋转90度,点击“完成”退出全屏,整个界面保持向下移动20px,好像它正在容纳状态栏。我注意到,当全屏观看视频时,ios会添加一个状态栏,所以我猜这是问题的一部分。我也看到了原生视频播放器出现的问题。
有什么想法吗?
答案 0 :(得分:3)
我最近在我的应用游戏指南:Black Ops 2中使用了这种YouTube嵌入方法,我遇到了这个问题,同时在点击电影播放器的“完成”按钮时显示了rootViewController。检查rootViewController上的“Wants Full Screen”修复了20像素移位,并修复了按下“完成”按钮后显示的rootViewController我将其添加到rootViewController,后者正在添加一个UIViewController(带有tableView)作为正在使用的子节点[presentViewControllerAnimated:(BOOL)completion:nil]显示带有YouTube视频嵌入的ViewController。
现在一切正常运行...如果你想了解它的行为,请查看我的应用中的视频标签。
-(void)viewDidAppear:(BOOL)animated {
NSLog(@"Main View viewDidAppear...");
[super viewDidAppear:animated];
[self dismissViewControllerAnimated:YES completion:nil];
}
ios youtube iphone rotation statusbar mpmovieplayerviewcontroller
答案 1 :(得分:1)
我遇到了类似的问题。
我在故事板中创建了视图。检查视图控制器设置的布局部分中的Wants full Screen
为我解决了这个问题。
答案 2 :(得分:0)
如果您使用UITabBarController,则必须将此视图安装为窗口的根目录。与其他视图控制器不同,标签栏界面不应该作为另一个视图控制器的子项安装。
答案 3 :(得分:0)
尝试添加到info.plist下一个键:UIStatusBarHidden(“状态栏最初隐藏”),值为YES。