我在网上搜索,但没有找到任何解决方案。
那是我的问题:
我在 UIWebView 中嵌入了 YouTube 视频。它可以工作,但是当我进入全屏播放并旋转我的 iPad 时,UINavigationBar 会移动(见下图)。我知道在网页视图中没有直接控制视频播放器,但我不知道如何解决。
谢谢
我在网上搜索,但没有找到任何解决方案。
那是我的问题:
我在 UIWebView 中嵌入了 YouTube 视频。它可以工作,但是当我进入全屏播放并旋转我的 iPad 时,UINavigationBar 会移动(见下图)。我知道在网页视图中没有直接控制视频播放器,但我不知道如何解决。
谢谢
使用 MPMoviePlayerNotification 无法解决此问题,因为 UIWebView Video 不要使用 MPMoviePlayerViewController 或者它是开发人员私有的。但是,还有另一种方法可以修复此错误。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleStatusBarFrameDidChange)
name:UIApplicationDidChangeStatusBarFrameNotification
object:nil];
- (void)handleStatusBarFrameDidChange {
self.navigationController.navigationBarHidden = YES;
self.navigationController.navigationBarHidden = NO;
}
我在我的 iPhone 应用程序上遇到了类似的问题。
我想知道这是否是正确的方法,但现在下面的代码解决了它。
1. webivew的initialize方法中增加了观察者。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(youTubeStarted:) name:@"UIMoviePlayerControllerDidEnterFullscreenNotification" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(youTubeFinished:) name:@"UIMoviePlayerControllerDidExitFullscreenNotification" object:nil];
当您不再需要观察者时,应将其删除。我只是将代码放在 webview 的 dealloc 方法中。
[[NSNotificationCenter defaultCenter] removeObserver:self];
2.电影开始时隐藏导航栏,电影结束时再次显示。
* 代码中的 contentsViewController 是我的 webview 的所有者。所以就我而言。
- (void)youTubeStarted:(NSNotification *)notification
{
self.contentsViewController.navigationController.navigationBarHidden = YES;
}
- (void)youTubeFinished:(NSNotification *)notification
{
self.contentsViewController.navigationController.navigationBarHidden = NO;
}