我目前正在iOS7中处理个人项目,并且必须在Galarie滚动视图上显示多个图像。为此,我创建了一个UIImage,然后将其插入UIImageView。我将所有UIImageView存储在NSMutableArray中。
我将所有图片显示在UIScrollView上。

通过我可以执行的测试,使用的内存可以超过500 MB。

如何优化内存?相机基本应用程序如何显示超过1000张照片?

先感谢您。亲切地。

最佳答案

您需要根据滚动视图位置设置延迟加载。仅加载可见屏幕的三倍(或更少,取决于内存需求),并实现UIScrollViewDelegate函数scrollviewDidScroll:来侦听滚动事件。

在scrollViewDidScroll内部,您将要搜索图像数组(它应该是位置和文件名的数组,以最大程度地节省内存)。如果滚动视图越来越靠近您的图像位置,请加载它并将其添加到屏幕。如果屏幕上已经有东西,但现在已经足够远,可以将其移出屏幕并卸载,则将其从滚动视图中删除并释放对象(或者最好将其用于下一次图像加载)。

查看PDFKitten。它们会延迟加载PDF页面。您的图片可以完全相同的方式实施。

关于ios - UIImageView的内存泄漏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21313483/

10-12 00:27
查看更多