繁体   English   中英

如何有效地将图像从服务器加载到tableView?

[英]How to load images from server to tableView efficiently?

我有一个具有UITableViewCellStyleSubtitle的所有单元格的表视图,所有单元格的图像都是从服务器获取的。

但是,这些图像不会经常更改。

有人可以向我展示如何改善用户体验? 每次用户向下滚动表时,似乎它都联机检查并再次下载图像。

或者至少,请告诉我一些可以实现目标的选项。

谢谢,

Three20库具有ImageView子类,该子类接受远程图像的URL,并使用出色的TTURLRequest / Caching机制来获取图像。 它维护内存中和磁盘上的缓存,并且仅在未缓存或已过期的映像才下载。 您可以配置默认的缓存过期时间,也可以使用HTTP响应中的值。 如果使用TTTableViewController子类和适当的TTTableItem子类,则将免费获得适当的图像下载行为。 但是,没有必要使用每三个组件来完成所需的操作。 如果要集成到现有代码中,则可以创建自己的UITableViewCell子类,该子类使用TTImageView而不是标准UIImageView。 然后,在单元格配置方法中,您可以设置默认的占位符图像和要加载的URL,其余的工作将由它来完成。 作为性能优化,您还应该在表视图控制器中实现UIScrollView委托方法,以在滚动期间挂起TTURLRequestQueue(请看TTTableViewController来了解如何完成此操作)。

您可以尝试以下方法之一

  • 创建一个字典并使用图像名称作为键将所有提取的图像缓存在其中

  • tableView:cellForRowAtIndexPath:缓存并重用整个UITableView单元格tableView:cellForRowAtIndexPath:

  • 如果只是重复一幅图像,则在tableView:cellForRowAtIndexPath:外部加载一幅图像tableView:cellForRowAtIndexPath:

  • 您写的图像每月更改一次-您可以将图像使用时保存到磁盘,只需检查是否在后燃器上更改了图像,或者以给定的每日间隔重新下载图像即可。 Brian Chapados的回复似乎很有趣。

根据您的代码,可能还有很多其他方法可以改善图像加载。 希望有帮助...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM