Как установить пользовательское фоновое изображение для большого заголовка NavigationBar в iOS 11? Я использую пользовательский подкласс, который я назначил навигационным контроллерам в раскадровке.
Вот как я создаю свой пользовательский NavBar:
class CustomNavigationController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.navigationBar.tintColor = UIColor(red:1, green:1, blue:1, alpha:0.6)
self.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
if #available(iOS 11.0, *) {
self.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .automatic
self.navigationBar.largeTitleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
self.navigationBar.barTintColor = UIColor.green
}
self.navigationBar.isTranslucent = false
self.navigationBar.setBackgroundImage(#imageLiteral(resourceName: "navigationBarBackground"), for: .default)
self.navigationBar.shadowImage = #imageLiteral(resourceName: "navigationBarShadow")
}
}
Странно, что setBackgroundImage(image, for: .default)
не работает для больших заголовков. Он работал раньше с iOS 10, а также, если я поворачиваю iPhone (и активирую небольшой NavBar), фон возвращается?
Edit:
backgroundImage
по-прежнему отображается, но как-то скрыт. Только если вы начинаете прокрутку и появляется "нормальная" панель навигации, отображается backgroundImage. В этом случае также игнорируется barTintColor
.