2010-05-20 69 views
1

我正在开发一个应用程序,其中包含像iPhone中的默认图片浏览器功能。我做了一些类似的事情。但从远程服务器加载一些(近10-15)图像后,我收到内存警告。我的要求是逐个加载图像。为此,我在滚动视图中放置图像并增加滚动视图的contentSize。它会正常工作。但由于内存警告应用程序相当。应用程序像iPhone中的默认图片浏览器?

伙计们,有任何想法来处理这个功能,它类似于照片应用程序没有问题?

在此先感谢。

回答

0

由于您一次将10个或更多图像的数据保存在内存中,因此内存不足。你需要在你的代码中有更多的逻辑,它不仅可以预先加载和增加滚动视图的内容大小,还可以随着用户滚动到更新的东西而从滚动视图(从而从内存中)移除UIImageViews。 (您也可以将“逐出”图像保存到磁盘上的缓存区域,这样如果用户向后滚动,则不必再次访问服务器。)

+0

非常感谢quixoto。这种方法的任何示例代码将对我更好PLZZZZZZZZ – 2010-05-20 05:21:01

+0

自己没有任何方便。这是非常依赖于应用程序的事情。在滚动视图中围绕一系列“页面”,将其作为队列使用,并在每次前进时将最不新近的一个缓冲下来。 – 2010-05-20 14:39:08

+0

我已经实现了这样的东西。但这并不是直截了当的。如果您在用户处于幻灯片移动过程中时开始加载内容,则幻灯片会显得很糟糕,因为幻灯片会卡住。我正在做一些后台线程的加载,但仍然有很多调整,以使它适用于所有新旧设备。为了让您更容易,您可以放弃对旧的慢速设备的支持,并且一次将更多的“页面”保存在内存中,以尽量减少加载时间。然后,有人可能会有更好的解决方案...苹果的专辑应用程序显示“预览”图像的低分辨率版本等。 – Jonny 2011-07-13 17:18:34

0

如果您使用UITableView,它只会请求图像并在需要时自动清除屏幕外单元以节省内存。不过,它可能不适合您的应用程序的审美。

相关问题