我正在努力工作,Apple开发者论坛一直没有帮助。
我有一个播放视频的应用程序,当显示电影控件并旋转iPad时,状态栏会在方向开始前坚持视频所在的方向。然后在视图顶部有一个20px的间隙,而状态栏在另一个方向。
有没有人见过这个问题?
非常感谢任何帮助。
答案 0 :(得分:2)
我遇到了同样的问题,而且在将电影播放器恢复到窗口模式后,我的观点仍然被搞砸了。我不知道如何在全屏播放期间解决这个问题,但至少在切换回窗口后你可以修改状态栏,如下所示:
执行
[[UIApplication sharedApplication] setStatusBarOrientation:[[UIDevice currentDevice] orientation] animated:NO];
答案 1 :(得分:2)
我遇到了同样的问题:
presentModalViewController
)。的Bam!我们的应用程序布局被破坏了(我们为每个方向做了一些自定义布局),状态栏位于错误的位置,尽管在视频中位于正确的位置。
我做了两件事来解决这两个问题:
viewWillAppear
完成的自定义配置是在调用[super viewWillAppear];
之后完成的。MPMoviePlayerDidExitFullscreenNotification
和MPMoviePlayerPlaybackDidFinishNotification
实现观察者(在我的案例中点击'完成'时,第一个从未被调用过。)观察者回调的代码如下所示:
[self performSelector: @selector(checkAndFixStatusBar)
withObject: nil
afterDelay: 0];
[[NSNotificationCenter defaultCenter] removeObserver: self];
最后一种方法,在故意延迟0后调用:
- (void)checkAndFixStatusBar
{
UIInterfaceOrientation intOrient = self.interfaceOrientation;
UIInterfaceOrientation sbOrient = [[UIApplication sharedApplication] statusBarOrientation];
if (intOrient != sbOrient)
{
[[UIApplication sharedApplication] setStatusBarOrientation: intOrient animated: NO];
NSLog(@"Fixed status bar orientation");
}
}
仍然可以看到状态栏的闪烁,但这是我想出的最佳状态。
希望这有帮助。
编辑:我已删除了performSelector
步骤,并直接调用状态栏设置,在我的情况下,它没有明显的区别(仍在闪烁)。