我有一个网络服务,作为数字资产管理器的一种形式。我们的一些用户在其帐户中存储了数千张图像。我们想给他们一个iPhone应用程序,让他们访问这些图像。我们可以使用无限滚动但我们希望某种形式的uicollectionview表由日期分割,并带有可以滚动并跳转到的侧索引列表。要做到这一点,我们需要将他们的所有图像下载到一个集合视图中,这看起来很疯狂。
其他人如何处理大量图像的显示,搜索和过滤?
答案 0 :(得分:0)
通常,当需要从Web服务(或文件系统)下载大量数据时,密钥不是一次性完成所有操作,而是将其分区为可管理的部分,您可以根据需要加载和卸载。没有一种方法可以做到这一点,但这是一般的想法。
要管理此过程,下载描述所有内容的完整索引(如图像URL的json列表)可能会有所帮助,而无需下载数据库中的每个图像或数据(但不是必需的 - 这不会与数百万条目一起工作)。这使您可以搜索和浏览内容,而无需大量下载。
在您的问题中,听起来您的图像按日期范围分组。您可以探索的可能程序可能是:
下载所有图像的索引及其关联日期,并将其加载到内存中。 (成千上万应该没问题)。
images : [
{
url: "http://someurl/image.png",
name: "Great Image!",
date: "12/3/15"
// possibly include more data like search tags...
},..
]
开始下载与最近日期范围相关联的初始图像集,并在完成时显示。
在iOS上,我通常使用AFNetworking(或AlamoFire for Swift)来处理异步网络请求。