我在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")
}
答案 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")