问题描述
我正在尝试将个人资料图片设置为条形按钮项。图片来自使用 SDWebImage 的 URL。当我运行应用程序时,该项目显示为一个白框,所有其他右侧栏按钮项目向左移动。有谁知道我做错了什么?或者是否有更好的方法来做到这一点?
@IBOutlet weak var myAvatarButton: UIBarButtonItem! {
didSet {
// call in "my user"
guard let userImageURL = CurrentUser.shared.imageURL else {
return
}
let avatarImage = UIImageView()
avatarImage.frame = CGRect(x: 0,y: 0,width: 30,height: 30)
avatarImage.sd_setimage(with: userImageURL,placeholderImage: #imageLiteral(resourceName: "placeholder"),options: [.refreshCached,.retryFailed],completed: nil)
myAvatarButton.image = avatarImage.image
}
}
第一张照片如模拟器所示,第二张照片来自故事板。
解决方法
使用完成块。您直接将图片设置为按钮图片,但下载图片需要时间。
avatarImage.sd_setImage(with: userImageURL,placeholderImage: #imageLiteral(resourceName: "placeholder"),options: [.refreshCached,.retryFailed]) { (image,error,type,url) in
if let image = image {
myAvatarButton.image = image
}
}