ios - UIImageView 的内存泄漏

标签 ios iphone objective-c uiimageview uiimage

我目前在 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/

相关文章:

objective-c - NSJSONSerialization解析响应数据

ios - UIButton 以相等的宽度快速延伸超过 UIView 的边缘

iphone - "vector-based-data"解决方案比 "tile-based-data"解决方案复杂多少?

java - 从 java ServerSocket 到 iphone 的网络问题(仅在 3g 模式下)

ios - 如何增加表格 View 单元格中文本标签和详细文本标签之间的空间?

objective-c - 弹出式按钮单元使用 Cocoa Binding 返回 bool 值

javascript - React-Native 在构建时找不到主项目文件

ios - 创建 UIImageView 时上下文无效

iphone - 从一个帐户为 iphone appstore 构建;使用另一个发布

ios - 释放iOS应用中SKMap(Skobbler)的内存