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

时间:2016-10-05 16:16:50

标签: ios swift sdwebimage

我在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之前检查网址的内容,还是我可以在同一个库中进行操作?

我想要的是这样的:

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

3 个答案:

答案 0 :(得分:8)

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

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

占位符图片将成为默认图片。

附加说明:您可能需要检查Kingfisher,它是由SDWebImage启发的,但它是使用Swift构建的。

答案 1 :(得分:1)

最好有占位符图像,这样即使您的请求失败,仍然会有图像。

您可以使用SDWebImage函数sd_setImageWithURL:placeholderImage

设置占位符

<强>夫特

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

<强>目标C

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

答案 2 :(得分:0)

尝试此代码:

斯威夫特3&amp; SDWebImage 4.0.0

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