Я хочу отобразить изображение профиля текущего пользователя на изображении элемента панели кнопок.Будет отображаться изображение по умолчанию, но не изображение профиля пользователя.
Объявление изображения кнопки панели:
lazy var leftButton: UIBarButtonItem = {
var image = UIImage.init(named: "icons8-kontakte-50")?.withRenderingMode(.alwaysOriginal)
let button = UIBarButtonItem.init(image: image, style: .plain, target: self, action: #selector(ConversationViewController.showProfile))
return button
}()
Здесь я наблюдаю за текущим пользователем и получаю текущее изображение профиля:
//left bar button image fetching
self.navigationItem.leftBarButtonItem = self.leftButton
self.tableView.tableFooterView = UIView.init(frame: CGRect.zero)
UserApi.shared.observeCurrentUser { (currentUser) in
self.currentUser = currentUser
guard let url = URL(string: currentUser.profilImageUrl!) else { return }
URLSession.shared.dataTask(with: url, completionHandler: { (data, response, error) in
if error == nil {
let image = UIImage.init(data: data!)
let contentSize = CGSize.init(width: 30, height: 30)
UIGraphicsBeginImageContextWithOptions(contentSize, false, 0.0)
let _ = UIBezierPath.init(roundedRect: CGRect.init(origin: CGPoint.zero, size: contentSize), cornerRadius: 14).addClip()
image!.draw(in: CGRect(origin: CGPoint.zero, size: contentSize))
let path = UIBezierPath.init(roundedRect: CGRect.init(origin: CGPoint.zero, size: contentSize), cornerRadius: 14)
path.lineWidth = 2
UIColor.white.setStroke()
path.stroke()
let finalImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!.withRenderingMode(.alwaysOriginal)
UIGraphicsEndImageContext()
self.leftButton.image = finalImage
}
})
Заранее спасибо за вашу помощь!