方面填写导航栏图像?
我想要获得与我的导航控制器的背景图像相同的外观。
目前我正在使用它来设置图像:
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)