SDWebImage 是怎么解决图片错位的

在最早的时候用SDWebImage加载cell的图片会出现图片错位的情况... 比方说第3行的图片下载的很慢,我把它滑走,过一会下载的图片出现在了第8行,应该是cell复用的缘故...

可是现在用SDWebImage的sd_setImage方法直接就可以避免这种情况. 看了源码,没有找到它的解决办法.. 有大神知道SDWebImage是怎么解决的么

阅读 7k
2 个回答

你可以仔细看看 sd_setImageWithURL: 方法的内部实现,其实每次调用该方法都会先 Cancel 掉这个UIImageView 之前请求的正在执行的操作,然后才会开始新一次的下载,利用 runtime 技术存取了相关数据,从而避免了 Cell 重用问题。

重复出现应该是cell的复用问题,当一个cell上的image没加载出来,刚好这个cell又是复用的话,那么这个cell上的image就会显示之前的图片。解决方法是在cell的prepareforreuse中将image置为nil.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题