iOS 7 播放视频后状态栏消失

Posted

技术标签:

【中文标题】iOS 7 播放视频后状态栏消失【英文标题】:iOS 7 Status Bar Disappears After Playing a Video 【发布时间】:2013-10-10 09:09:17 【问题描述】:

我不是唯一遇到此类问题的人。这是另一个,Status bar height changes after playing a Youtube video。但我仍然找不到解决这个问题的方法。我没有使用 MPMoviePlayerController。我想我只需要使用这些代码;

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];

self.webView.frame = CGRectMake(0.0,
                                20.0,
                                self.webView.frame.size.width,
                                self.webView.frame.size.height);

但它不是那么有效。

请看下面这张图片..

起初这就是我的“家”的样子。

播放来自 Youtube/Vimeo(或其他)的视频时状态栏消失。

当我回去的时候,看到他们聚在一起。

发现 FB 想出了如何处理这个问题。他们的状态栏就出现在那里。

有什么帮助???

提前干杯!

【问题讨论】:

我遇到了同样的问题。你找到解决办法了吗? 【参考方案1】:

我不知道是否适用于你的情况,但在我的情况下,状态栏是在我加载 UIImagePickerController 并更改我的默认屏幕方向后出现的。

我解决了这种情况,像这样在 appDelegate 中添加 application.statusBarHidden = YES;

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 
// Detect if I need to hide the StatusBar (optional)
if (iNeedToHide == YES)   
    application.statusBarHidden = YES;

return UIInterfaceOrientationMaskLandscape;

希望对你有帮助。

【讨论】:

很抱歉,我需要在播放视频时显示状态栏,以防止其他屏幕的导航栏与状态栏混在一起。我在打开 Youtube/Vimeo 网站时让它出现了,但是当我播放视频时,它消失了.. 我不知道你的视频控件是不是一种导航控制器,但如果是你可以使用这个委托过程并隐藏状态栏: // Esto se usa para quitar el statusBar dentro de las opaciones del UIImagePicker - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated // Esconder el StatusBar. Provocado por el ios7 和 UIImagePickerController [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; 【参考方案2】:

我不得不在关闭视频播放器时禁用动画。为视频完成事件设置通知:

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(videoDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:controller.moviePlayer];

然后,在方法内部,关闭没有动画的视图控制器:

- (void)videoDidFinish:(NSNotification *)notification 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:controller.moviePlayer];
    [self dismissViewControllerAnimated:NO completion:nil];

【讨论】:

以上是关于iOS 7 播放视频后状态栏消失的主要内容,如果未能解决你的问题,请参考以下文章

全屏视频后iOS状态栏保持横向

iOS 中的状态栏保持在最后一个方向视图中

手机影音第八天 控制视频播放页面的上面与下边的控制器布局的消失与隐藏

iphone播放视频时隐藏状态栏

EasyPlayer针对H.265视频不自动播放设置下,loading状态无法消失的解决办法

媒体控件栏在 VideoView Android 中出现一秒钟后消失