【问题标题】:Why black screen display between navigationBar and view为什么navigationBar和view之间显示黑屏
【发布时间】:2014-02-11 07:16:57
【问题描述】:

在我的项目中,导航控制器中嵌入了两个视图控制器(第一个和第二个),并且半透明设置为 NO。但我在 First ViewController 中使用了提示符。

我使用了自动布局。如果您知道使用和不使用 AutoLayout 的解决方案,我会非常高兴

当我推送到第二个视图控制器时。我在导航栏下出现了一些黑屏

我尝试了很多概念,但都有所帮助。

帮助我如何解决。

注意:

不要说 set Translucent 是 YES。我知道如果我设置是,它会完美运行。但我需要用 Translucent 实现是 NO

更新 1:图像已更新。

【问题讨论】:

  • 那么如果黑色区域在您的导航栏下方.. 可能您的蓝色视图太短了?
  • 就是这样。我知道。我想为什么会来
  • 为什么你的导航栏在第一个VC里那么大? ...
  • 我在导航栏中使用了提示
  • 我试图重现您的错误并在我的控制台中收到一条错误消息。在谷歌搜索该错误消息后,我发现了以下线程:stackoverflow.com/questions/19103071/… 似乎它已在 iOS7.1 中修复

标签: ios iphone objective-c uinavigationbar translucency


【解决方案1】:

我已关闭自动布局 - 并找到以下解决方案

ViewController 优先

-(void)viewWillDisappear:(BOOL)animated
{
     self.view.backgroundColor = [UIColor whiteColor];

}

第二个视图控制器

 -(void)viewWillLayoutSubviews
 {
    AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
    appDelegate.window.backgroundColor = [UIColor whiteColor];
    self.myView.frame = CGRectMake(0.0, 64.0, 320.0, 504.0);

 }

我希望这会有所帮助,因为自动布局也可以正常工作

【讨论】:

  • 我知道我尝试过的这种方法。我需要优化的方式。不需要硬编码任何值
【解决方案2】:

我使用了这个代码。但我不会有任何硬编码解决方案。如果您知道任何其他解决方案,请分享

[UIView animateWithDuration:0.3 animations:^{
        self.view.frame=CGRectMake(0, self.navigationController.navigationBar.frame.size.height+20, 320, 504);
}];

【讨论】:

    【解决方案3】:

    尝试设置您的navigationView 的backgroundColor

    【讨论】:

      猜你喜欢
      • 2015-03-05
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-24
      • 1970-01-01
      相关资源
      最近更新 更多