第一次更改图像时 UIImageView 内存增加
UIImageView memory increases when changing image first time
一个演示项目 -
我有一个 UIImageView 和三个按钮。
每当我单击任何按钮时,我都会更改图像视图的图像。我的图片尺寸是1242*1242。
问题:每次单击按钮时,它都会占用 5 MB 内存。例如,我点击了按钮 1,内存增加了 5 MB,然后我按下了按钮 2,内存增加了 5 MB。但是当我再次点击按钮 1 时,内存没有增加。
这是 UIImage View 的常见行为吗? 实际上,我正在处理相框,每次应用新的帧内存时都会增加。因此在应用 30-40 帧后应用程序崩溃。
有人可以介绍一下如何在这种类型的相框应用程序上工作,或者 UIImagesView 占用内存的任何原因吗?
提前致谢!
是的@Amanpreet,我也有同样的行为。在对仪器进行调查时,我发现每次单击按钮时加载新图像时都会分配一些内存块 ImageIO-jpeg-data。
--------------------解决方案-------------------- ----------
使用
在 imageView 中加载图像
UIImage(contentsOfFile: filePath!)
方法。现在你的内存大小不会每次都随着新图像而增加。
示例代码
@IBAction func loadOne(_ sender: UIButton) {
let filePath = Bundle.main.path(forResource: "1", ofType: "jpg")
imageView.image = UIImage(contentsOfFile: filePath!)
}
@IBAction func loadTwo(_ sender: UIButton) {
let filePath = Bundle.main.path(forResource: "2", ofType: "jpg")
imageView.image = UIImage(contentsOfFile: filePath!)
}
@IBAction func loadThree(_ sender: UIButton) {
let filePath = Bundle.main.path(forResource: "3", ofType: "jpg")
imageView.image = UIImage(contentsOfFile: filePath!)
}
我正在使用大小为 1920*1280 的图像,之前我的内存使用量增加了 41.6 MB,
51.5 MB,
59.5 MB,
67.5 MB,每次点击后,但在采用上面给出的解决方案后,内存使用量卡在 50.4 MB
一个演示项目 -
我有一个 UIImageView 和三个按钮。
每当我单击任何按钮时,我都会更改图像视图的图像。我的图片尺寸是1242*1242。
问题:每次单击按钮时,它都会占用 5 MB 内存。例如,我点击了按钮 1,内存增加了 5 MB,然后我按下了按钮 2,内存增加了 5 MB。但是当我再次点击按钮 1 时,内存没有增加。
这是 UIImage View 的常见行为吗? 实际上,我正在处理相框,每次应用新的帧内存时都会增加。因此在应用 30-40 帧后应用程序崩溃。
有人可以介绍一下如何在这种类型的相框应用程序上工作,或者 UIImagesView 占用内存的任何原因吗?
提前致谢!
是的@Amanpreet,我也有同样的行为。在对仪器进行调查时,我发现每次单击按钮时加载新图像时都会分配一些内存块 ImageIO-jpeg-data。
--------------------解决方案-------------------- ----------
使用
在 imageView 中加载图像UIImage(contentsOfFile: filePath!)
方法。现在你的内存大小不会每次都随着新图像而增加。
示例代码
@IBAction func loadOne(_ sender: UIButton) {
let filePath = Bundle.main.path(forResource: "1", ofType: "jpg")
imageView.image = UIImage(contentsOfFile: filePath!)
}
@IBAction func loadTwo(_ sender: UIButton) {
let filePath = Bundle.main.path(forResource: "2", ofType: "jpg")
imageView.image = UIImage(contentsOfFile: filePath!)
}
@IBAction func loadThree(_ sender: UIButton) {
let filePath = Bundle.main.path(forResource: "3", ofType: "jpg")
imageView.image = UIImage(contentsOfFile: filePath!)
}
我正在使用大小为 1920*1280 的图像,之前我的内存使用量增加了 41.6 MB, 51.5 MB, 59.5 MB, 67.5 MB,每次点击后,但在采用上面给出的解决方案后,内存使用量卡在 50.4 MB