我目前在 iOS7 中进行个人项目,我必须在 Galarie ScrollView 上显示多张图片。为此,我创建了一个 UIImage
,然后将其插入到 UIImageView
中。我将所有的 UIImageView
存储在 NSMutableArray
中。
我在 UIScrollView
上显示所有图片。
根据我可以执行的测试,使用的内存可以超过 500 MB。
如何优化内存?您的相机基础应用程序如何显示超过 1000 张照片?
提前致谢。亲切地。
最佳答案
需要根据scrollview位置设置延迟加载。仅加载可见屏幕的三倍(或更少,取决于内存需要)并实现 UIScrollViewDelegate 函数 scrollviewDidScroll:
以监听滚动事件。
在 scrollViewDidScroll 中,您将要搜索您的图像数组(它应该是一个位置和文件名数组,以便最好地释放内存)。如果 ScrollView 越来越接近您的图像位置,则加载它并将其添加到屏幕。如果某些东西已经在屏幕上,但现在距离屏幕足够远并可以卸载,则将其从 ScrollView 中移除并释放对象(或者更好的是,在下一次图像加载时重新使用它)。
查看 PDFKitten。他们延迟加载 PDF 页面。您的图像可以以完全相同的方式实现。
关于ios - UIImageView 的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21313483/