第一次更改图像时 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 MB51.5 MB, 59.5 MB, 67.5 MB,每次点击后,但在采用上面给出的解决方案后,内存使用量卡在 50.4 MB