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

hivapdat  于 2023-05-21  发布在  Swift
关注(0)|答案(4)|浏览(156)

下面是我在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)

我使用sd_setImage从SDWebImage下载图像从url和缓存它,但有时url是找不到或有空的内容,所以如何给予一个默认的图像单元格,如果url是空的,我应该检查的内容的url之前使用sd_setImage或我可以只做它从同一个库?
我想要的是这样的:

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

bihw5rsg1#

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

cell.empPhoto.sd_setImageWithURL(url, placeholderImage:UIImage(imageNamed:"placeholder.png"))
  • placeholderImage* 将是默认的图像,如果url不包含有效的图像。
  • 附加说明:* 你可能想检查Kingfisher,它是受SDWebImage启发而构建的,但它是使用Swift构建的吗?
r6vfmomb

r6vfmomb2#

最好有占位符图像,这样即使您的请求失败,仍然会有图像。
您可以使用SDWebImage函数sd_setImageWithURL:placeholderImage设置占位符

Swift

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

Objective-C

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

u91tlkcl3#

试试这个代码:
Swift 3和SDWebImage 4.0.0

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

hfsqlsce4#

if let imageUrl = dicData?.image, let url = URL(string: imageUrl ) {
    cell.imgMain.sd_setImage(with: url, placeholderImage: UIImage(named: "YOUR_IMAGE_NAME"), options: SDWebImageOptions.continueInBackground)
} else {
    cell.imgMain.image = UIImage(named: "YOUR_IMAGE_NAME")
}

相关问题