相关疑难解决方法(0)

使UINavigationBar透明化

你如何使UINavigationBar透明?虽然我希望它的酒吧项目仍然可见.

iphone transparency objective-c uinavigationbar ios

232
推荐指数
10
解决办法
13万
查看次数

如何使UINavigationBar背景透明?

首先,我已经看到了如何在IOS 8中制作UINavigationBar透明的 所有答案透明UINavigationBarMake UINavigationBar透明.

他们似乎并不适合我.

我的常规视图控制器(在尝试使导航栏透明之前)没有任何问题:

在此输入图像描述

我正在使用(在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];
Run Code Online (Sandbox Code Playgroud)

我明白了:

在此输入图像描述

灰色状态栏背景,完全白色导航栏,不与状态栏混合,然后视图开始.其他问题"答案"中的所有"解决方案"对我来说都会产生相同的结果.

我也尝试过设置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;再次尝试使用最新的代码,但仍无济于事:

在此输入图像描述

uinavigationbar uinavigationcontroller ios

12
推荐指数
3
解决办法
1万
查看次数