【问题标题】:iOS 8 UINavigationBar Background ImageiOS 8 UINavigationBar 背景图片
【发布时间】:2014-09-18 13:55:18
【问题描述】:

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

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

在 iOS 7 中的工作就像一个魅力,但当我在同一个模拟器设备上尝试但在 iOS 8 中不显示背景图像。

iOS 8 有一些新代码吗?我在网上找不到任何东西。


更新:

我发现了我见过的最奇怪的行为之一。 当我显示并随后关闭 modalView 时,会出现 UINavigationBar 的背景图像。

更多信息:我正在 viewDidLoad 中加载图像。

有什么想法吗?

【问题讨论】:

标签: xcode ios8


【解决方案1】:

试试这个它对我有用:-

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar_background_login.png"] forBarMetrics:UIBarMetricsDefault];

【讨论】:

  • 效果很好!!我可以相信我没有尝试过。
  • [[UINavigationBar 外观] setBackgroundImage:[UIImage imageNamed:@"navbar_background_login.png"] forBarMetrics:UIBarMetricsDefault];在您的应用程序委托“didFinishLaunchingWithOptions”方法中编写此代码,它将设置导航栏背景图像应用程序的宽度。
  • 要获得更好的解决方案和不同的屏幕尺寸,请参阅stackoverflow.com/questions/43602848
【解决方案2】:

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

【讨论】: