Я пытаюсь заставить мой UINavigationBar
отобразить круглое изображение профиля в левом верхнем углу.Я могу с легкостью отображать изображения / значки, используя следующие экземпляры.
self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: icon, style: .plain, target: self, action: #selector(funcToCall))
Проблема заключается в том, что при попытке работы с изображениями профиля ни пользовательские представления, ни создание экземпляров изображения не дают желаемого результата.
Попытка 1 - Swift 4 (создание экземпляра)
let img = originalImage.withRenderingMode(.alwaysOriginal)
self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: img, style: .plain, target: self, action: #selector(goToProfile))
Эта попытка дает следующий результат .
Проблемы:
- Несмотря на то, что я указал
leftBarButtonItem
, он отображается посередине - Я не могу создать круглую кнопку, используя эту стратегию, поскольку нет представления для изменения
cornerRadius
для.
Попытка 2 - Swift 4 (пользовательские виды)
let idealButton = UIButton(frame: CGRect(x: 0, y: 0, width: 32, height: 32))
idealButton.setImage(imgToUse, for: .normal)
idealButton.imageView?.contentMode = .scaleAspectFill
idealButton.imageView?.layer.cornerRadius = 0.5 * idealButton.frame.width
idealButton.imageView?.layer.borderWidth = 0.75
idealButton.imageView?.layer.borderColor = rgba(240,240,240,1).cgColor
idealButton.addTarget(self, action: #selector(goToProfile), for: .touchUpInside)
navigationItem.setLeftBarButton(UIBarButtonItem(customView: idealButton), animated: false)
Эта попытка дает следующий результат ,
Проблемы
- Изображение охватывает всего
UINavigationBar
.Он не ограничен указанными размерами.
Любая помощь очень ценится.Спасибо!