Правильное размещение UIImageView в UIBarButtonItem - PullRequest
0 голосов
/ 15 мая 2019

При попытке поместить UIImageView(UIImage) в UIBarButtonItem на UINavigationBar изображение размещается в середине полосы, а также имеет широкие поля, покрывающие всю полосу. Так что не похоже на маленькую кнопку слева.

Я пробовал различные приемы с изменением размера фрейма, настройками contentMode.

Приведенный ниже код взят из моего View Controller, который является частью стека Navigation Controller. Добавил это изображение в активы:
http://pluspng.com/img-png/png-hd-bike-ktm-bike-png-500.png для тестирования назвал его bike.png и использовал его в UIImage ниже.

  override func viewDidLoad() {
        super.viewDidLoad()
        let image = UIImage(named: "bike")
        let imageView = UIImageView(image: image)
        imageView.backgroundColor = .blue //for debugging
        imageView.contentMode = .scaleAspectFit
        navigationItem.leftBarButtonItem = UIBarButtonItem(customView: imageView)
  }

Ожидаемым результатом будет изображение мотоцикла слева, а не посередине. Также нет пустых полей слева и справа (выделено синим цветом для отладки) изображения.

ОЖИДАЕТСЯ (нарисовано в Paintbrush) :

enter image description here

РЕАЛЬНОСТЬ

enter image description here

1 Ответ

0 голосов
/ 15 мая 2019

Закончилось разрешением как:

imageView.widthAnchor.constraint(equalToConstant: (navigationController?.navigationBar.frame.height)!).isActive = true

...