【发布时间】:2016-01-10 15:30:02
【问题描述】:
首先, 我已经在How to make UINavigationBar Transparent in IOS 8?Transparent UINavigationBar 和Make UINavigationBar transparent 看到了所有答案。
它们似乎不适合我。
我的常规视图控制器(在尝试使导航栏透明之前)没有任何问题:
我正在使用(在viewDidLoad 和viewWillAppear: 都试过):
[self.navigationController.navigationBar setBackgroundImage:[UIImage new]
forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
self.navigationController.navigationBar.translucent = YES;
self.navigationController.view.backgroundColor = [UIColor clearColor];
我明白了:
灰色状态栏背景,完全白色的导航栏与状态栏不融合,然后视图开始。其他问题“答案”中的所有“解决方案”对我来说都产生了相同的结果。
我也尝试过设置self.edgesForExtendedLayout = UIRectEdgeNone; 或self.edgesForExtendedLayout = UIRectEdgeAll;,但这也没有任何影响。
如何让我的导航栏透明而不弄乱一切?
更新: 按照 Warif Akhand Rishi 的回答,我已将 self.navigationController.view.backgroundColor = [UIColor clearColor]; 更改为 self.navigationController.navigationBar.backgroundColor = [UIColor clearColor];,现在我得到了一个灰色的统一状态/导航栏,但仍然不透明:
更新 2:我已经连接了视图调试器,灰色背景似乎来自视图层次结构的根深蒂固,我的视图内容没有向上延伸。我用最新的代码再次尝试了self.edgesForExtendedLayout = UIRectEdgeAll;,但仍然无济于事:
【问题讨论】:
-
隐藏状态栏怎么样?
-
在您的视图控制器中,您是否在顶栏下方延伸边缘?
-
@SamB 我不想隐藏状态栏。
-
@beyowulf 尝试开启和关闭。都一样
标签: ios uinavigationcontroller uinavigationbar