对于幻灯片放映功能,图像位于远程服务器上,那么我们是否可以实现批量预览图像的下载?我们希望在查看图像时提前下载“n”图像 - 这有助于提供更流畅的观看体验。这是为幻灯片显示获得零延迟的好方法,还是有更好的方法。
答案 0 :(得分:1)
为了提供流畅的观看体验以及减少(不归零)幻灯片放映的延迟,我同意缓存机制。
我假设你有一个图片网址列表,现在只要幻灯片在屏幕上显示,就会开始加载可见的项目。触发滚动视图确实滚动并在后台加载最后一个可见索引后的下n个图像,然后缓存它们。因此,无论何时用户滚动到下一个索引,图像几乎都会在您的内存中存在并立即显示。
为什么我们应该触发滚动视图滚动。首先,因为这是空闲时间,允许您在没有用户注意的情况下开始做事。其次,如果您在滚动时开始加载图像,则在设置为UIImageView时,由于在主线程上执行该任务,您的幻灯片放映将会滞后。
如上所述,SDWebImage是一个很好的库,可以帮助您完成任务。 顺便说一句,如果您考虑使用SDWebImage,我建议您配置此选项
/**
* By default, image downloads are started during UI interactions, this flags disable this feature,
* leading to delayed download on UIScrollView deceleration for instance.
*/
SDWebImageLowPriority = 1 << 1,
我希望我的答案可以贡献2美分来解决你的问题。
答案 1 :(得分:0)
在我的意见中,如果超出内存限制,请使用SDWebImage
https://github.com/rs/SDWebImage预加载图像并清理内存缓存。