сделать UIImage заполнить весь навигационный бар - PullRequest
1 голос
/ 06 февраля 2020

Я хочу вставить изображение в навигационную панель пользовательского интерфейса и сделать его похожим на аспект, подходящий для изображения, внутри imageView. Я делаю это как

navigationController?.navigationBar.compactAppearance?.backgroundImageContentMode = .scaleToFill
        navigationController?.navigationBar.setBackgroundImage(image, for: .default)

Но это дает мне вывод:

enter image description here

Как я могу сделать его идеальным .

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Самый простой способ использовать UIImageView здесь с scaleAspectFit свойством изображения. Попробуйте следующий рабочий код блока.

func setNavigation() {
    let imageView = UIImageView(image: UIImage(named: "bankselected"))
    imageView.frame = navigationController!.navigationBar.frame
    imageView.backgroundColor = .lightGray
    imageView.contentMode = .scaleAspectFit
    navigationController?.navigationBar.addSubview(imageView)
  } 

enter image description here

0 голосов
/ 06 февраля 2020

Вы можете использовать этот протокол для добавления изображения в вашу навигационную панель.

protocol CustomizableNavigationBar {
    var navigationBar: UINavigationBar? { get }
}

extension CustomizableNavigationBar {
    func setNavBarLogo() {

        let imageView = UIImageView(image: UIImage(named: "artistAvatar1"))
        imageView.frame = navigationBar!.frame
        imageView.contentMode = .scaleToFill
        navigationBar?.addSubview(imageView)
    }
}

Использовать его вот так

class SearchViewController: UIViewController,CustomizableNavigationBar {

     var navigationBar: UINavigationBar?

     override func viewDidLoad() {
            super.viewDidLoad()
            navigationBar = navigationController?.navigationBar
            setNavBarLogo()

        }
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...