Ответ 1
self.navigationController.navigationBar.setBackgroundImage(image,
forBarMetrics: .Default)
Код ниже не работает для меня, может кто-нибудь помочь понять, что не так?
var image = UIImage(named: "10384605_10152519403846670_5189785375955620548_n.jpg") as UIImage
self.navigationController.navigationBar.setBackgroundImage(image , forBarMetrics:UIBarMetrics)
self.navigationController.navigationBar.setBackgroundImage(image,
forBarMetrics: .Default)
В 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
}
В 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
let navBackgroundImage:UIImage! = UIImage(named: "navbar_bg")
[UINavigationBar .appearance().setBackgroundImage(navBackgroundImage, forBarMetrics:.Default)]
Если вы хотите заполнить изображение на панели навигации, просто используйте код:
self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: "your_Background_Image_Name")?.resizableImage(withCapInsets: UIEdgeInsets.zero, resizingMode: .stretch), for: .default)
Для Swift 3:
В AppDelegate.swift:
UINavigationBar.appearance().setBackgroundImage(UIImage(named:"pattern.png"),
for: .default)
ИЛИ
В viewDidLoad():
self.navigationController?.navigationBar.setBackgroundImage(UIImage(named:"pattern.png"),
for: .default)
Добавьте следующий код в метод didFinishLaunchingWithOptions в AppDelegate.swift:
if let myImage = UIImage(named: "navBarImage.jpg"){
UINavigationBar.appearance().setBackgroundImage(myImage, for: .default)
}
@benLIVE попросил, как сделать кнопку "Назад", которую я делал, когда я нашел принятый ответ, поэтому я подумал, что я тоже останусь здесь (если немного поздно) b/c, если вы собираетесь заменить навигационную панель значок, вы также можете заменить их всех!
let cubeIcon = UIImageView(image: yourImage)
cubeIcon.contentMode = .scaleAspectFit
self.navigationItem.backBarButtonItem?.image = cubeIcon.image