tableView数据刷新的问题

来源:3-2 UI数据源同步 相关面试问题

weixin_慕运维6385236

2018-12-22

老师你好,之前面试中有问到UITableView是通过cell复用创建的,每个cell有一张图片,通过网络请求获取的,可是如果在请求图片时滑动tableView,之前的cell消失并被复用了,那请求到的图片我怎么处理?我怎么确定现在的cell是否存在,而不是复用后的cell。

写回答

2回答

于海

2018-12-22

图片下载是跟url绑定的,每次cell重用的时候数据要重新指定,这一步一般发生在主线程。后续图片在子线程下载完成准备设置的时候,要预先判断当前imageview的url是否是曾经指定的,如果不是,不设置图片,否则设置,具体你可以看看sdwebimage的框架实现

0
2
夜鸽
回复
weixin_慕运维6385236
1、是要问SDWeb的图片加载策略,加载图片前会先取消掉正在下载的操作,然后才进行下载/缓存取图。2、如果是不存在屏幕上,cell.window会是nil。如果是重用了,会触发prepareForReuse方法。
2020-09-02
共2条回复

滨滨_0

2019-01-31

这个问题看SDWebImage就有答案,在加载图片的时候,首先会取消掉已经正在下载的操作,然后在进行下载或者在缓存中拿

0
0

资深大牛带你深度剖析ios高级面试

从BAT/TMD名企真题入手,结合源码及应用,构建完整iOS知识体系

1749 学习 · 600 问题

查看课程