如何设置 SDWebImage 的 placeholderImage 的显示尺寸大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置 SDWebImage 的 placeholderImage 的显示尺寸大小相关的知识,希望对你有一定的参考价值。

很多页面其实就是这种展示结果,通常需要 imageView , textLabel , detailTextlabel ,而 UITableViewCell 本身提供了方便的自动布局(当有图片和没图片时,textLabel和detailLabel的位置会左右自动调整). 但是图片的大小却是没有办法固定的(直接设置 imageView.frame 是无法固定 imageView 的大小的),那么一般来说解决这个问题的办法有两种:

  固定显示图片的大小(包括PlaceHolder)
  自定义tableViewCell,添加自定义的 imageView , textLabel 和 detailTextLabel
  这两种方式都可以解决这个问题,但是这两种方式其实都挺麻烦的,能否直接固定imageView的大小呢? 方法是有的,只需要重载 layoutSubviews 即可

  派生UITableViewCell

  //自定义一个Cell
  @interface MMCell : UITableViewCell

  @end

  @implementation MMCell

  //重载layoutSubviews
  - (void)layoutSubviews
  
  UIImage *img = self.imageView.image;
  self.imageView.image = [UIImage imageName:@"res/PlaceHolder.png"];
  [super layoutSubviews];
  self.imageView.image = img;
  

  @end
  这样,我们只要使用 MMCell 就可以固定 imageView 的大小了,且大小为 PlaceHolder.png 的大小(一般来说这种页面都会使用一个 PlaceHolder.png 来显示默认图片).

  原理是在 UItableVeiw 的 layoutSubviews 调用时,会根据 imageView.image 的大小来调整 imageView , textLabel , detailTextLabel 的位置,在此之前我们先将 imageView.image 设置为 PlaceHolder.png 图片,等待重新布局完后再将原本的图片设置回去就可以了
参考技术A 点设置

以上是关于如何设置 SDWebImage 的 placeholderImage 的显示尺寸大小的主要内容,如果未能解决你的问题,请参考以下文章

关于SDWebImage加载webp格式图片异常问题

如何从按钮的 imageView 中删除缓存的 SDWebImage

SDWebImage

SDWebImage 使用 Swift 在 CellView 中将图像设置为 UIButton

在 UITableView 重新加载时从 SDWebImage 设置图像

通过 SdWebImage 设置图像给出“错误代码=-1003”并使用 CFNetwork 诊断日志“Err(-65554)”