美文网首页
关于tableViewCell 的问题(重用,自动布局)

关于tableViewCell 的问题(重用,自动布局)

作者: yok_ | 来源:发表于2018-04-03 17:26 被阅读9次

    重用导致的图片错乱问题

    现象:
    当我们快速滑动界面时,如果遇到加载2个不同图片的cell,会出现两个cell上的图片相同的情况
    原因:
    由于图片是异步下载的,下载完成才给cell设置,由于快速滑动的时候会导致cell的重用,第二种cell重用的是第一种cell,而第一种cell加载图片的block刚好回调完,则第一种cell上的图片数据被设置到第二种cell上,导致图片出错
    解决:
    1)由于两个cell的位置是不同的,所以可以使用indexPath来区分,异步加载完成的时候判断下indexPath是否相同,相同则设置。
    2)把图片的url放入cell中,异步加载完成的时候判断其url是否与cell内的相同,相同的时候再setImage,否则就缓存下来。
    3)使用SDWebImage:SDWebImage加载图片前,imageView对象会关联一个下载列表(列表是给AnimationImages用的,这个时候会下载多张图片),当tableview滑动,imageView重设数据源(url)时,会cancel掉下载列表中所有的任务,然后开启一个新的下载任务。这样子就保证了只有当前可见的cell对象的imageView对象关联的下载任务能够回调,不会发生图片错乱现象。

    相关文章

      网友评论

          本文标题:关于tableViewCell 的问题(重用,自动布局)

          本文链接:https://www.haomeiwen.com/subject/ppdqhftx.html