![](/img/trans.png)
[英]SDWebImage Set Image To UIButton in CellView Using Swift
[英]Using SdWebImage and Image Change immediately by swift
我使用SDWebImage遇到有關imageView的問題。
我更改了用戶的圖像並已經獲得了新用戶的圖像URL,但是當我按下此ViewController時,它將首先顯示舊圖像並更改為新圖像。
我怎么了 謝謝。
var avatar:String = "" // previous VC data pass to here
var photoImageView:UIImageView = { () -> UIImageView in
let ui = GeneratorImageView()
ui.backgroundColor = UIColor.clear
ui.layer.masksToBounds = true
ui.contentMode = .scaleAspectFill
return ui
}()
override func viewDidLoad() {
super.viewDidLoad()
iconImageFromUrl(imageView: iconImageView, url: avatar, isResize: false)
}
func iconImageFromUrl(imageView:UIImageView, url:String,isResize:Bool) {
imageView.setShowActivityIndicator(true)
imageView.setIndicatorStyle(.gray)
imageView.sd_setImage(with: URL(string:url), placeholderImage: nil, options: .lowPriority, progress: nil
, completed: { (image, error, cacheType, url) in
guard image != nil else{
imageView.image = resizeImage(image: #imageLiteral(resourceName: "defaultIcon"), newWidth: 50)
return
}
DispatchQueue.global().async {
let data = try? Data(contentsOf: url!) //make sure your image in this url does exist, otherwise unwrap in a if let check / try-catch
if data != nil
{
if let image = UIImage(data: data!)
{
DispatchQueue.main.async {
if isResize == true{
imageView.image = resizeImage(image: image, newWidth: 250)
}else{
imageView.image = image
}
}
}
}
}
})
}
sd_setImage
方法寫在UIImageView
的類別內。 下載圖像后,它會自行將圖像設置在UIImageview
上,並在完成關閉操作中也返回下載/緩存的UIImage
。
您不需要從imageUrl
創建數據並再次設置它。 如果要調整圖像大小,可以在返回的圖像上進行調整。
另外,您無需檢查圖像nil即可設置默認圖像,只需將調整大小后的默認圖像作為占位符圖像傳遞即可
imageView.sd_setImage(with: URL(string:url), placeholderImage: resizeImage(image: #imageLiteral(resourceName: "defaultIcon"), newWidth: 50), options: .lowPriority, progress: nil
, completed: { (image, error, cacheType, url) in
guard image != nil else {
return
}
if isResize {
imageView.image = resizeImage(image: image, newWidth: 250)
} })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.