为什么标题栏在轮换后出现在状态栏后面?

时间:2010-10-18 22:30:54

标签: iphone uiviewcontroller uiwebview rotation

我有一个UIViewController,其视图是带有嵌入电影的UIWebView。当电影全屏播放并且设备旋转时,标题栏会在电影取消后在状态栏后面结束。为什么会发生这种情况?

alt text

4 个答案:

答案 0 :(得分:1)

事实证明,视频启动时视图控制器视图的动画未完成。这导致它在视频播放器视图中重新显示。

答案 1 :(得分:1)

我的解决方案:

(void)viewDidLoad
{
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];
    [UIApplication sharedApplication].keyWindow.frame=CGRectMake(0, 20, 320, 460);
    self.navigationController.navigationBar.hidden=NO;
 }

答案 2 :(得分:0)

你是否在UIWebView上进行了autoresizingMask

webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight |
                                      UIViewAutoresizingFlexibleWidth);

-(BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) orientation 
{
    return YES;
}

答案 3 :(得分:0)

使用MPMoviePlayerNotification无法解决此问题,因为UIWebView视频不要使用MPMoviePlayerViewController或它是私有的开发人员。 但是,还有另一种方法可以解决这个问题。

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(handleStatusBarFrameDidChange)
                                             name:UIApplicationDidChangeStatusBarFrameNotification
                                           object:nil];

- (void)handleStatusBarFrameDidChange {
    self.navigationController.navigationBarHidden = YES;
    self.navigationController.navigationBarHidden = NO;
}