适用于iOS 10 XCode 8.1 Swift 3.0的NavigationBar背景图片

如何设置此特定设置的背景图像? iOS10XCode8.1 ? 我尝试了下面的一切:

 UINavigationBar.appearance().setBackgroundImage(UIImage(named: "navigationBg")!.resizableImage(withCapInsets: UIEdgeInsetsMake(0, 0, 0, 0), resizingMode: .stretch), for: .default) UINavigationBar.appearance().setBackgroundImage(UIImage(named: "navigationBg")! , for: .any, barMetrics: .default) UINavigationBar.appearance().setBackgroundImage(UIImage(named: "navigationBg")! , for: .default) 

我可以使用storyboard设置navigationBar的颜色,但无法设置图像。

尝试设置“self.navigationItem.titleView”属性

参考: 如何将图像作为导航栏标题

更新:

试试这个,而不是在UINavigationBar()中设置

 let navBackgroundImage:UIImage! = UIImage(named: "") self.navigationController?.navigationBar.setBackgroundImage(navBackgroundImage, for: .default) 

这是在Swift 3中完美适用于我的代码。
把它放在didFinishLaunchingWithOptions

 let image = bg_banner // let image = #imageLiteral(resourceName: "bg_banner") UINavigationBar.appearance().setBackgroundImage(image.resizableImage(withCapInsets: UIEdgeInsetsMake(0, 0, 0, 0), resizingMode: .stretch), for: .default) 

这是我收到的输出。 在此处输入图像描述

要设置NavigationBar背景图像,您可以这样写:

  self.navigationController?.navigationBar.setBackgroundImage(UIImage(named:"pattern.png"), for: .default) 

要将背景图像设置为整个导航栏,请在swift 3.0中使用此cde,

 UINavigationBar.appearance().setBackgroundImage(UIImage(named: "Exam-104")!.resizableImage(withCapInsets: UIEdgeInsetsMake(0, 0, 0, 0)), for: .default) 

导航栏图像

希望这会帮助你。

XCode 8.1 Swift 3.0 iOS 10

来自Apple文档:

您可以为导航栏设置自定义背景图像。 您可以使用setBackgroundImage:forBarMetrics:执行此操作setBackgroundImage:forBarMetrics: . 请注意,您必须指定条形指标,因为导航条在不同的设备和方向上具有不同的尺寸。

 let image = UIImage(named: "navigationBg")! if let navigationController = self.navigationController { navigationController.navigationBar.setBackgroundImage(image, for: .default) } 

参考: 导航栏