在swift中设置navigationBar背景图片

问题描述 投票:15回答:9

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

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

self.navigationController.navigationBar.setBackgroundImage(image , forBarMetrics:UIBarMetrics)
uinavigationbar swift ios8
9个回答
33
投票
self.navigationController.navigationBar.setBackgroundImage(image, 
                                                   forBarMetrics: .Default)

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
}

14
投票

在Swift 3中:

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

let image = UIImage(named: "imageNameInAsset")
UINavigationBar.appearance().setBackgroundImage(image, for: .default)

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

let titleView = UIImageView(image: UIImage(named: "imageNameInAsset"))
self.navigationItem.titleView = titleView

6
投票

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

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

3
投票
let navBackgroundImage:UIImage! = UIImage(named: "navbar_bg")

[UINavigationBar .appearance().setBackgroundImage(navBackgroundImage, forBarMetrics:.Default)]

2
投票

对于Swift 3:

在AppDelegate.swift中:

UINavigationBar.appearance().setBackgroundImage(UIImage(named:"pattern.png"),
                                                                for: .default)

要么

在viewDidLoad()中:

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

0
投票

将以下代码添加到AppDelegate.swift中的didFinishLaunchingWithOptions方法:

    if let myImage = UIImage(named: "navBarImage.jpg"){
        UINavigationBar.appearance().setBackgroundImage(myImage, for: .default)
    }

0
投票

@benLIVE询问如何做一个后退按钮,当我找到接受的答案时我正在做的事情,所以我想我也会把它留在这里(如果有点晚)b / c如果要更换导航栏图标,您也可以替换所有这些!

    let cubeIcon = UIImageView(image: yourImage)
    cubeIcon.contentMode = .scaleAspectFit
    self.navigationItem.backBarButtonItem?.image = cubeIcon.image

0
投票

在导航控制器中设置背景图像

self.navigationController?.navigationBar .setBackgroundImage(UIImage(named: "cricket"), for: .default)
© www.soinside.com 2019 - 2024. All rights reserved.