2016-11-27 65 views
3

如何为此特定设置设置背景图像? iOS10和XCode8.1? 我想下面的一切:NavigationBar适用于iOS 10的背景图像XCode 8.1 Swift 3.0

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) 

我能够设置使用故事板,但不能设置图像导航栏的颜色。

回答

7

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

参考:how-to-put-an-image-as-the-navigation-bar-title

更新:

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

let navBackgroundImage:UIImage! = UIImage(named: "<navigationBarImage>") 
self.navigationController?.navigationBar.setBackgroundImage(navBackgroundImage, 
                  for: .default) 
+0

我使用这个导航栏的标题图像,而不是背景。我会尝试组合这两个图像并使用此方法。谢谢 – Husyn

+0

不,这不是解决方案。它只是将图像放置在导航栏的中心。您无法将图像设置为覆盖整个导航栏。 – Husyn

3

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

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

有关设置背景图片到整个导航栏SWIFT 3.0使用CDE,

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

Navigation bar image

希望这会帮助你。

1

的XCode 8.1雨燕3.0的iOS 10

从苹果文档:

您可以为导航栏设置自定义背景图片。您可以使用setBackgroundImage:forBarMetrics:来完成此操作。请注意, 必须指定小节度量标准,因为导航栏在不同的设备和方向上具有不同的 尺寸。

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

参考:Navigation Bars

5

这里是一个完美的我在斯威夫特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) 

这里是我收到的输出。 enter image description here