Настройка пользовательского фонового изображения с помощью UINavigationBarAppearance
В моем приложении я использовал этот код до сих пор, чтобы установить настраиваемую графику на панели навигации:
UIImage *portraitImage = [[UIImage imageNamed:@"navbar_bg_portrait.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 100, 50, 100)];
UIImage *landscapeImage = [[UIImage imageNamed:@"navbar_bg_landscape.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 200, 0, 200)];
[self.navigationController.navigationBar setBackgroundImage:portraitImage forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setBackgroundImage:landscapeImage forBarMetrics:UIBarMetricsCompact];
Теперь, после установки XCode 11.4, это больше не работает. Я исследовал это и обнаружил, что теперь мне нужно использовать такой код:
if (@available(iOS 13.0, *)) {
UINavigationBarAppearance *appearance = [[UINavigationBarAppearance alloc] init];
UINavigationBar.appearance.scrollEdgeAppearance = appearance;
UINavigationBar.appearance.standardAppearance = appearance;
}
Как я могу использовать этот UINavigationBarAppearance для добавления пользовательского фона изображения на панель навигации?