将UIImage加载到内存中以避免在分配给视图时挂起

时间:2018-11-20 23:01:50

标签: ios swift memory-management

我有一个带有分页的滚动视图设置,以显示几个蓝图,每个蓝图数个MB。我正在尝试在用户将要与滚动视图交互时将最接近的蓝图手动加载到内存中。这样,当我将图像分配给要渲染的视图时,处理时间比从磁盘加载要快得多。

问题是图像正在加载到内存中,但占用的内存量与应用时不一样。我认为这是因为渲染大小不同吗?而且,当我分配UIImageView.image以使用我的预缓存图像时,就像它没有使用内存一样,我仍然遇到麻烦。我究竟做错了什么?分配图像时,我需要避免任何延迟。

在这里,我试图通过将图像绘制到内存中来缓存图像,然后将UIImage存储在数组中以供以后提取

            let url = URL(fileURLWithPath: path + String(index) + ".png")
            let imageData: Data = try! Data(contentsOf: url)
            let image = UIImage(data: imageData, scale: UIScreen.main.scale)
            self.loadedBuffer.append(image!)

这是我稍后将图像分配给3个视图的方式,这会引起明显的打ic。这是为三个视图分配了3个预缓存的图像。

    for index in 0...loadedBuffer.count - 1
    {
        self.planImages[index].image = loadedBuffer[index]
    }

编辑过的:试图对正在发生的事情和我想发生的事情写一个更清晰的描述。感谢您的光临!

0 个答案:

没有答案