我有一个项目,其中有两个 View ,在第一个 View 中,我显示了一个 uitableview。并在选择任何行单元格时打开另一个 View 。
第一个 View 有 10 个单元格,每个单元格在被选中时会打开另一个 View ,其中最多包含 21 个 View ,最少包含 1 个 View 。
第二个 View 中的每个 View 由图像数组 TableView 和 TableView 中的许多 subview 组成(图像数组显示在具有多个 ImageView 的 ScrollView 中)
现在的问题是我无法释放我不知道的内存分配,因为根据我的代码,分配的所有内容都是释放的。我也试过器乐,但没用。
以前,当我只访问一个 View 时,它会使应用程序崩溃,因此我降低了图像的分辨率,现在它在没有其他应用程序打开时导航近 9 个应用程序,否则它适用于 6 个 View 。现在我什至不能降低图像的分辨率,因为现在质量已经很低了。那么我该如何减少这个根本不支持我的应用程序甚至释放占用的内存的内存分配。
请确保您没有回复诸如仪器泄漏之类的建议,因为这没有帮助。我需要知道如何释放未使用的内存。
您可以看到一个 View 中有三个 View ,这是一个滚动条,因此当您通过滚动进行导航时,将显示更多 View ,并且顶部有一个图像,这也是一个滚动条。除此之外,还有一个显示详细信息的表格 View 。但是当我创建这个 View 时,我面临内存问题,因此我从这个 View 中释放所有内容,甚至我试图在返回时删除整个 View 。为此,我使用了“PagedFlowView”示例
https://github.com/kejinlu/PagedFlowView
上面的链接是针对 pagedflowview 示例的,下面的链接是针对我已经实现的代码引用类的,请检查我的类,让我知道我在哪里可以改进它。
http://www.4shared.com/file/rHmRDr2E/SwipeExerciseViewController.html
最佳答案
在处理图像时请牢记一件事。当您使用图像时,它不会像许多人期望的那样占用内存,它显示的文件大小(即,对于 2048 x 1536 来说,一些东西小于 3MB)。相反,它实际上以原始格式加载,根据如下计算获取内存:
宽度 x 高度 x n 字节,其中 n 是用来表示每个像素颜色的位数,大多数情况下它是 4。
因此,对于同一张 2048 x 1536 图像,它将占用 12MB。
现在检查您正在谈论的图像的原始分辨率是多少,并计算它需要多少 MB,然后根据此更改您的代码。
关于iphone - 在 ViewController ("Page swipe Style ScrollView"中收到内存警告),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18079414/