在swift中设置navigationBar背景图片

Roh*_*hit 15 uinavigationbar swift ios8

下面的代码对我不起作用,任何人都可以帮助弄清楚出了什么问题吗?

var image = UIImage(named: "10384605_10152519403846670_5189785375955620548_n.jpg") as UIImage

self.navigationController.navigationBar.setBackgroundImage(image , forBarMetrics:UIBarMetrics)
Run Code Online (Sandbox Code Playgroud)

B.S*_*.S. 33

self.navigationController.navigationBar.setBackgroundImage(image, 
                                                   forBarMetrics: .Default)
Run Code Online (Sandbox Code Playgroud)


小智 16

在AppDelegate.swift中

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.

    //Image Background Navigation Bar
    let navBackgroundImage:UIImage! = UIImage(named: "backgroundNB.png")
    UINavigationBar.appearance().setBackgroundImage(navBackgroundImage, forBarMetrics: .Default)

    return true
}
Run Code Online (Sandbox Code Playgroud)


Dan*_*ord 14

Swift 3中:

如果要在后台添加重复图像,可以在AppDelegate> didFinishLaunchingWithOptions中进行此调用:

let image = UIImage(named: "imageNameInAsset")
UINavigationBar.appearance().setBackgroundImage(image, for: .default)
Run Code Online (Sandbox Code Playgroud)

如果要将图像添加到导航栏的中心,则需要在ViewController> viewWillAppear中执行此操作:

let titleView = UIImageView(image: UIImage(named: "imageNameInAsset"))
self.navigationItem.titleView = titleView
Run Code Online (Sandbox Code Playgroud)


Ram*_*van 7

如果要在导航栏中填充图像,只需使用以下代码:

self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: "your_Background_Image_Name")?.resizableImage(withCapInsets: UIEdgeInsets.zero, resizingMode: .stretch), for: .default)
Run Code Online (Sandbox Code Playgroud)