【问题标题】:UINavigationBar missplaced when MPMoviePlayerController exits fullscreen (ios 8 issue)当 MPMoviePlayerController 退出全屏时 UINavigationBar 错位(ios 8 问题)
【发布时间】:2015-09-12 12:54:48
【问题描述】:

在我的应用程序中,我使用 MPMoviePlayerController 流式传输视频。播放器进入全屏之前和播放器退出全屏之后的视图导航栏图像如下所示。

全屏之前

全屏后

导航栏向上移动了 20 像素。尝试了很多方法,例如设置框架隐藏和取消隐藏框架等。但没有用。

我该如何纠正这个问题? 1. 我可以使用 uibarpositioningdelegate 来纠正这个问题吗?如果可以,如何?

请帮忙,谢谢。

【问题讨论】:

  • 你能告诉我你在设计视图时使用了自动布局或自动调整大小吗?
  • 我使用自动布局并根据要求动态设置某些视图的高度

标签: ios objective-c ios8 uinavigationbar mpmovieplayercontroller


【解决方案1】:

试试这个...

进入全屏时隐藏导航栏,取消隐藏时再次显示...

-(void)viewDidLoad {

     [super viewDidLoad];     

     [[NSNotificationCenter defaultCenter] addObserver:self
     selector:@selector(mPExitFullScreen) 
    name:MPMoviePlayerWillExitFullscreenNotification 
    object:nil];

     [[NSNotificationCenter defaultCenter] addObserver:self    selector:@selector(mPEnterFullScreen) name:MPMoviePlayerDidEnterFullscreenNotification object:nil];

}

- (void) mPExitFullScreen{
    [self.navigationController setNavigationBarHidden:NO animated:NO];
}

- (void)mPEnterFullScreen {
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}

【讨论】:

  • 它帮助了 50% ..实际上我之前尝试过这个问题是每次电影播放器​​退出全屏时主屏幕视图都会向上移动 20 像素。在 viewDidAppear 中重置视图做了技巧。[self.view setFrame:CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height)];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-16
相关资源
最近更新 更多