在最早的时候用SDWebImage加载cell的图片会出现图片错位的情况... 比方说第3行的图片下载的很慢,我把它滑走,过一会下载的图片出现在了第8行,应该是cell复用的缘故...
可是现在用SDWebImage的sd_setImage方法直接就可以避免这种情况. 看了源码,没有找到它的解决办法.. 有大神知道SDWebImage是怎么解决的么
在最早的时候用SDWebImage加载cell的图片会出现图片错位的情况... 比方说第3行的图片下载的很慢,我把它滑走,过一会下载的图片出现在了第8行,应该是cell复用的缘故...
可是现在用SDWebImage的sd_setImage方法直接就可以避免这种情况. 看了源码,没有找到它的解决办法.. 有大神知道SDWebImage是怎么解决的么
重复出现应该是cell的复用问题,当一个cell上的image没加载出来,刚好这个cell又是复用的话,那么这个cell上的image就会显示之前的图片。解决方法是在cell的prepareforreuse中将image置为nil.
1 回答855 阅读
2 回答650 阅读
2 回答657 阅读
1 回答640 阅读
1 回答727 阅读
658 阅读
你可以仔细看看
sd_setImageWithURL:
方法的内部实现,其实每次调用该方法都会先 Cancel 掉这个UIImageView
之前请求的正在执行的操作,然后才会开始新一次的下载,利用 runtime 技术存取了相关数据,从而避免了 Cell 重用问题。