iOS 滑过的图片怎么取消下载? 比如新闻列表tableview,每个cell都有图片,从cell[0]滑到cell[40]时要经过cell[20],只是经过,最后停下来时cell[20]不在屏幕内。那么 cell[20]的图片应该不需要下载?怎么做到?我的思路是:delay加载,但这样体验会不会不好? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 tableview是继承自uiscrollview的我的思路是通过scrollview停止滚动的代理方法来控制加载图片,停止滚动时加载此时可视cell的图片 加载网络图片可以另开一个线程,异步加载。不然肯定会卡顿,用户体验不好。异步加载网络图片时,可以先预设一个placeholder image (占位图片),不会存在体验度不好的情况,反而是优化了用户体验。 版主说得对。用SDWebImage可以很简单就做到,加上图片的链接和占位图片好了,其他都不用考虑。 其实没必要取消,用户还是会滑过来的。再者,如果图片已经下载了一部分,那取消后下次又要重新下载。最多去SDWebImageDownloader里设置下并发下载数就好了 你的回答和我的提问不符合啊为什么没必要?之前忘了问你有没有用第三方的异步图片加载框架,如SDWebImage,不过话又说回来,用不用关系也不大。我之所以认为没有必要,是有三个原因,一是从体验上,你下载的图片肯定是要经过缓存的,既然缓存到本地了,就算这次用不到下次也能用到,对用户来说,他滑动tableView的时候就能看到图片是很爽的;二是从技术上,一个新闻缩略图能有多大?你还担心当前下载的图片过多,导致当前屏幕内的图片显示太慢?而且有一点很重要,UITableViewCell是被UITableView复用的,也就是说你在cell获取到ImageView和不在屏幕中显示的某一个ImageView是同一个,它在下载的同时会取消上一次的下载,这样一来就能保证屏幕中的cell总是在下载当前屏幕需要显示的图片(SDWebImage也会在下载的同时取消上一次的下载任务),所以不需要你去手动取消;三是从逻辑上,你如果要手动取消一次下载任务,逻辑是很复杂的,TableView的contentOffset在实时变化,需要显示的cell也是实时变化,你没有一个很好的时机去判断取消哪个,cell的willMoveToWindow也不一定会执行,因为TableView很可能只是更新了它的frame,然后你可能会想到layoutSubviews方法总之,我觉得没有必要 我开发蓝牙外置用的corebluetooth,怎么样确定我的UUID? 求助:虚拟机装mac错误 有没有比较好的iphone4或iphone5的书籍啊? 怎么判断点击的是哪个按钮 程序更新时 如何保留上个版本的数据 sqlite能实现吗? ios画面渲染问题 iOS网站客户端post验证登录账号和密码 在ARC环境下,我的控制器pop掉的时候有些会走dealoc有些不会? 怎么全局设置导航栏 Json串中的负数 iOS NSAutoLayout UIAlertController 中的message中的内容如何设置文本居左显示
我的思路是通过scrollview停止滚动的代理方法来控制加载图片,停止滚动时加载此时可视cell的图片
之前忘了问你有没有用第三方的异步图片加载框架,如SDWebImage,不过话又说回来,用不用关系也不大。我之所以认为没有必要,是有三个原因,一是从体验上,你下载的图片肯定是要经过缓存的,既然缓存到本地了,就算这次用不到下次也能用到,对用户来说,他滑动tableView的时候就能看到图片是很爽的;二是从技术上,一个新闻缩略图能有多大?你还担心当前下载的图片过多,导致当前屏幕内的图片显示太慢?而且有一点很重要,UITableViewCell是被UITableView复用的,也就是说你在cell获取到ImageView和不在屏幕中显示的某一个ImageView是同一个,它在下载的同时会取消上一次的下载,这样一来就能保证屏幕中的cell总是在下载当前屏幕需要显示的图片(SDWebImage也会在下载的同时取消上一次的下载任务),所以不需要你去手动取消;三是从逻辑上,你如果要手动取消一次下载任务,逻辑是很复杂的,TableView的contentOffset在实时变化,需要显示的cell也是实时变化,你没有一个很好的时机去判断取消哪个,cell的willMoveToWindow也不一定会执行,因为TableView很可能只是更新了它的frame,然后你可能会想到layoutSubviews方法总之,我觉得没有必要