为啥navigationBar和view之间显示黑屏
Posted
技术标签:
【中文标题】为啥navigationBar和view之间显示黑屏【英文标题】: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里那么大? ... 我在导航栏中使用了提示 我试图重现您的错误并在我的控制台中收到一条错误消息。在谷歌搜索该错误消息后,我发现了以下线程:***.com/questions/19103071/… 似乎它已在 ios7.1 中修复 【参考方案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
。
【讨论】:
以上是关于为啥navigationBar和view之间显示黑屏的主要内容,如果未能解决你的问题,请参考以下文章