2016-09-23 37 views
0

我想知道如果你能帮助我解决更多的一般性问题。下载并使用大量头像

在我的应用程序中,当用户注册时,我创建了一个缩略图头像(约35x35像素)。我将其上传到服务器。

在我的应用程序的另一部分,我显示了UITableView中的所有用户。该表由事先在视图控制器上发生的请求填充(所以我可以减少加载屏幕)。

该表格包含大约100行。我的问题是,我如何无缝加载所有的头像?

  • 我不希望用户点击视图,看到一堆用户,然后随机加载头像。
  • 我不想让加载屏幕出现,除非它绝对必要(即用户快速浏览应用程序)。
  • 我不想一次性向我的服务器发送100个请求。

我想发送一个请求,并可能一次返回它们。如果我这样做,是否有我应该使用的特定格式?一个带有base64编码缩略图的大型JSON响应? :/

除此之外,我应该缓存这些吗?如果是这样,怎么样?

Swift 3.

谢谢!

+2

使用SDWebImage或AFImage,它只能下载那些用户出现在表视图上,然后你可以缓存它并在以后使用 – Tj3n

回答

0

基于Pratham的梅塔的回答更多的研究后,我发现了一个名为翠鸟库: https://github.com/onevcat/Kingfisher

这是更适合我的项目,给予SDWebImage是用Objective-C,我的项目是斯威夫特3

0

SDWebImage是一个非常了不起的框架,您可以使用它来完成此任务。我已经在我的每个应用程序中使用它。

你可以在这里找到:https://github.com/rs/SDWebImage

你可以把下面的代码在你的cellForRowAtIndexPath方法

cell.imageView.sd_setImageWithURL(String.initWithURL("http://www.domain.com/path/to/image.jpg")) 

这里指定的网址链接到个人形象在那个特定的显示行。这样,您的应用就可以在用户滚动tableview时加载图片。鉴于你的图像是35x35,它应该是平稳和快速的。

希望这有助于!

0

结账Nuke。它旨在支持大量图像集(具有内置限制,请求速率限制等)。

如果我这样做,是否有我应该使用的特定格式?一个带有base64编码缩略图的大型JSON响应? :/

我会建议,以避免任何过早的优化 - 只要他们一出现在显示器上一个懒地下载图像。大多数图像加载框架都设计得非常好。

另外你可以prefetch的图像。

如果你想这样做的困难 - 只需压缩图像和下载档案。

除此之外,我应该缓存这些吗?如果是这样,怎么样?

您可能会感兴趣this对您有帮助。