Как изменить размер фонового изображения UINavigationBarAppearance
Я пытаюсь добавить фоновое изображение на панель навигации с помощью UINavigationBarAppearance. Однако размер imageView больше, чем вид содержимого панели навигации. Как это исправить?
Результат: обратите внимание, что изображение перекрывается с безопасной областью.
Код:
private func setupNavBar() {
navigationItem.largeTitleDisplayMode = .never
guard let navigationController = navigationController else { return }
let appearance = navigationController.navigationBar.standardAppearance.copy()
appearance.configureWithTransparentBackground()
appearance.backgroundImage = UIImage.checkmark
appearance.backgroundImageContentMode = .scaleAspectFit
appearance.backgroundColor = .red
navigationController.navigationBar.standardAppearance = appearance
}
1 ответ
Решение
Нашел альтернативу. Вместо использования фонового изображения внешнего вида я установил titleView в элементе навигации.
let imageView = UIImageView(image: UIImage.checkmark)
imageView.contentMode = .scaleAspectFit
navigationItem.titleView = imageView