利用runloop解决列表滑动时不加载图片的问题

2020-01-08  本文已影响0人  水水兔

之前在做一个列表功能时,当用户一直滑动列表时,一直会调用sdwebimage去加载图片,这样就会出现,当列表停止时,可视区域cell的图片还没下载完显示默认图片,而前面那些不可视区域的cell图片却加载完了,体验非常不好,原因是sdwebimage下载图片并发数总是有上限,导致先加载的先下载完,后加载的在排队。
利用runloop可完美解决这个问题,代码还简洁。方案就是列表滑动时,不要去调sdwebimage加载图片的方法。
下面先介绍一些相关知识。

NSObject perform系列接口

在调用perform系列方法时,系统会给我们创建一个Timer的source,加到对应的RunLoop上去,timer默认是加在NSDefaultRunLoopMode,所以滑动列表时,会停止调用perform的方法,利用这个特性,我们可以实现,在列表滑动时不去加载图片。

具体实现

1578472815520.jpg

效果

pllqk-n3rz4.gif

当然我在这里只是介绍有这么一种机制能实现这么一个功能,具要怎么实现才能让体验更好,还得开发者自己再去琢磨。

上一篇下一篇

猜你喜欢

热点阅读