Ios 当navigationBar.isTranslucent为true时,navigationBar的背景图像也将变为半透明

Ios 当navigationBar.isTranslucent为true时,navigationBar的背景图像也将变为半透明,ios,objective-c,swift,uinavigationbar,navigationbar,Ios,Objective C,Swift,Uinavigationbar,Navigationbar,在我的第一页中,导航栏应该是透明的,当推到下一页时,导航栏应该是图像。我通过更改\u UIBarBackground或\u UINavigationBarBackground的alpha来解决这个问题 但我遇到了一个大问题,在第一页中,视图应该放置在(0,0)处并从(0,0)处绘制,因此我将导航栏的isTranslucent设置为true,这一切都很好。但当我进入下一页时,背景图像显示为半透明,这是我不想要的 顺便说一句,我使用以下方法设置背景: navVC.navigationBar.setB

在我的第一页中,导航栏应该是透明的,当推到下一页时,导航栏应该是图像。我通过更改
\u UIBarBackground
\u UINavigationBarBackground
的alpha来解决这个问题

但我遇到了一个大问题,在第一页中,视图应该放置在(0,0)处并从(0,0)处绘制,因此我将导航栏的
isTranslucent
设置为
true
,这一切都很好。但当我进入下一页时,背景图像显示为半透明,这是我不想要的

顺便说一句,我使用以下方法设置背景:

navVC.navigationBar.setBackgroundImage(UIImage(named: "navigation_bar_background"),
                                       for: .default)

我检查了这里使用的图像,它不是半透明的


我能对这个问题做些什么?我不想将viewController的
ExtendedLayoutCludeSopaqueBars
设置为true,因为动画时的外观很难看

这两种解决方案的组合将有所帮助


在第一视图中:

self.navigationController.navigationBar.tintColor = [UIColor clearColor];
self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;

在第二视图中:

使用以下链接将图像设置为导航栏


除此之外 要使导航栏在第一页保持透明,并在第二页显示

第一页视图将显示Hide Yes NavigationBarHide,而在查看时确实消失Hide No

请尝试以下操作: