iOS 8 UINavigationBar 背景图片

3
我将使用以下代码来在UINavigation Bar的背景上放置一张图片:

我正在使用以下代码来将图像放置在UINavigation Bar的背景上:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbar_background_login.png"] forBarMetrics:UIBarMetricsDefault];

在iOS 7中,它的效果非常好,但是当我在同一模拟器设备上尝试使用iOS 8时,背景图片不显示。
有iOS 8的新代码吗?我在网上找不到任何信息。
更新:
我发现了我见过的最奇怪的行为之一。当我显示并稍后关闭modalView时,UINavigationBar的背景图像就会出现。
更多信息:我在viewDidLoad中加载图像。
有什么想法吗?

过时的重复问题,参见 https://stackoverflow.com/questions/43602848/ - jn-se
2个回答

5
尝试这个,它对我有用:-
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar_background_login.png"] forBarMetrics:UIBarMetricsDefault];

它完美地运行了!我简直不敢相信我之前没有尝试过。 - miquelweb
1
在你的应用程序委托 "didFinishLaunchingWithOptions" 方法中编写以下代码,它将设置导航栏背景图像应用程序范围内:[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbar_background_login.png"] forBarMetrics:UIBarMetricsDefault]; - Rajat
为了获得更好的解决方案和适配不同的屏幕尺寸,请参考 https://stackoverflow.com/questions/43602848/ - jn-se

2
使用[UINavigationBar appearance]来全局设置UINavigationBar背景是正确的。但请注意,外观仅影响未来的实例,而不影响已经创建的实例。尝试在创建您的UINavigationConroller之前放置设置外观代码。它应该仍然有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接