如何使用 SDWebImage 在 imageURL 为空时设置默认图像 - Swift

How to set default image when imageURL is empty using SDWebImage - Swift

我在 cellForRowAt 函数中有以下代码:

    let url = URL(string: myurl!)
   cell.empPhoto.image? = (cell.empPhoto.image?.circle)!
   cell.empPhoto.image? = (cell.empPhoto.image?.rounded)!

    cell.empPhoto.sd_setImage(with: url)

我正在使用来自 SDWebImage 的 sd_setImage 从 url 下载图像并缓存它,但有时找不到 url 或内容为空,所以如何给如果 url 为空,单元格的默认图像,我应该在使用 sd_setImage 之前检查 url 的内容还是我可以从同一个库中完成?

我想要的是这样的:

     if url.hasImage {
       cell.empPhoto.sd_setImage(with: url)
     }
      else{ // use default image
        cell.empPhoto.image=UIImage(named: "contact")
     }

您可以使用此版本的sd_setImage方法:

cell.empPhoto.sd_setImageWithURL(url, placeholderImage:UIImage(imageNamed:"placeholder.png"))
如果 url 不包含有效图像,

placeholderImage 将是默认图像。

补充说明: 您可能想检查 Kingfisher, it is built inspired by SDWebImage,但它是使用 Swift 构建的。

最好有占位符图片,这样即使你的请求失败也会有图片。

您可以使用 SDWebImage 函数设置占位符 sd_setImageWithURL:placeholderImage

Swift

cell.empPhoto.sd_setImage(with: url, placeholderImage: placeholderImage);

Objective-C

[cell.empPhoto.image sd_setImageWithURL:url placeholderImage:placeholderImage];

也试试这个代码:

Swift 3 & SDWebImage 4.0.0

//SDWebImage 4.0.0
self.profileImageView.sd_setImage(with: yourImageUrl, placeholderImage: UIImage("Your placeholder image name")