方面填写导航栏图像?

我想要获得与我的导航控制器的背景图像相同的外观。

目前我正在使用它来设置图像:

UINavigationBar.appearance().setBackgroundImage(imageToCache?.resizableImage(withCapInsets: UIEdgeInsetsMake(0, 0, 0, 0), resizingMode: UIImageResizingMode.stretch), for: .default) 

UIImageResizingMode.stretch显然给了我一个讨厌的拉伸外观。 我不在乎图像是在顶部/底部切断,我只是需要它被放入导航栏全尺寸,并显示显示。

我不能只是通过调整模式。

还有

 init(rawValue:)) 

选项的大小调整模式,但任何数字我放在那里导致没有图像在后台了。

有任何想法吗?

编辑:

 let picture = passedPerson.pictureURL! if let imageFromCache = MainPageVC.imageCache.object(forKey: picture as String as NSString) { var titleView = UIImageView() titleView.contentMode = .scaleAspectFit titleView.image = imageFromCache self.navigationItem.titleView = titleView } else { print(picture) var requested = URLRequest(url: URL(string: picture)!) URLSession.shared.dataTask(with: requested) {data, response, err in if err != nil { print(err?.localizedDescription) } else { DispatchQueue.main.async { let imageToCache = UIImage(data: data!) MainPageVC.imageCache.setObject(imageToCache!, forKey: picture as String as NSString) var titleView = UIImageView() titleView.contentMode = .scaleAspectFit titleView.image = imageToCache self.navigationItem.titleView = titleView // UINavigationBar.appearance().setBackgroundImage(imageToCache?.resizableImage(withCapInsets: UIEdgeInsetsMake(0, 0, 0, 0), resizingMode: UIImageResizingMode.stretch), for: .default) } } }.resume() 

上述结果没有出现。

试试这个。 希望你会工作

 UINavigationBar.appearance().setBackgroundImage(imageToCache‌​, forBarMetrics: .Default)