这是在UIScrollview(从服务器下载)上显示缩略图图像的最佳方法

问题描述:

我想在UIScrollview(如照片应用程序)上显示许多图像(如缩略图)。 所有的图像将从服务器上下载。要显示,按我所知,有几个选择:这是在UIScrollview(从服务器下载)上显示缩略图图像的最佳方法

1)通过创建UIImageViews的,然后将其添加为子视图上主滚动型 2)通过继承一个UIView类,然后就可以 3绘制图像)使用CATiledLayer类

我想,第一个选择不够好,因为它不是最好的方法,当加载大量的图像;第三种替代方式更适合大图像。由于我只能得到小图像,所以第二个替代方案对我来说似乎最好。

请建议,我应该去哪个选项。如果可行,请提供示例代码。

提前:)感谢

+0

我可能是错的,但我认为这样可以有任意数量从服务器获取图像。假设如果有100个图像被提取,我想创建100个UIImageView并添加它们UIScrollview不是一个好主意。我认为直接在视图上绘制图像是个好主意。请建议..谢谢 – iHS 2011-03-27 21:14:58

你是什么意思“[的UIImageView]不够好,因为它没有被优化”是什么意思?你真的认为UIImageView没有针对显示图像进行优化吗?

我的建议:请使用最简单的解决方案,看看它是否适合您的需求。

+0

最简单的解决方案并不总是最好的解决方案。我正在考虑速度和记忆。谢谢:) – iHS 2011-03-27 21:23:49

我发布了一个专门针对此问题制作的免费库:HJCache.We已将它用于许多应用程序,包括Facebook应用程序Focus for Facebook。它在文件中异步下载,缓存,在屏幕上重复时共享图像(例如,来自具有相同配置文件缩略图的同一人的帖子),当用户滚动浏览大量图像时自动管理下载正确的图像集合,并且易于与“加载下一张图像”设计一起用于全屏幕照片浏览。

http://www.markj.net/hjcache-iphone-image-cache/

+0

这似乎令人印象深刻。工作很好。谢谢。我会更多地探索你的代码。 (对于快速排序:您是使用图像视图来显示图像,还是直接在表格单元上绘制它们?) – iHS 2011-03-28 16:01:00

+0

两者都有。在一个应用程序中,我们使用包含UIImageViews的UIViews。在另一个较旧的应用程序中,我们希望在第一代iphone上平滑滚动,其细胞设计包括图像上的圆角和叠加在毕业背景上的图形和文本。这是通过使用图形上下文的自定义drawInRect代码完成的(这更快)。对于较新的应用程序,我们不会这么做,因为大多数用户都使用3GS和iPhone 4,而且这些应用程序足够快速地滚动复杂的视图布局。 – 2011-03-29 01:13:09

+0

非常感谢分享 – iHS 2011-03-29 15:14:46