swift 如何在显示图像后释放内存?

sdnqo3pr  于 2023-11-16  发布在  Swift
关注(0)|答案(1)|浏览(175)

我有一个图像作为背景,当我点击按钮时,它根据计数器在数组中的位置显示以下图像。每次计数器上升,新图像被设置为背景,内存使用增加。我的图像在我的资产文件夹中,它们的大小是512 x 384像素。它们是SVG图像。我想当我更改为另一个图像时,前一个的内存消失了。目前,当我改变图像时,内存使用增加了大约4 MB。因此,如果我有四个图像,内存会增加到16 MB。我希望当我改变到另一个图像时,它只是保持在四个或我当前图像占用的任何空间。

struct ContentView: View {
    @State var listOfImages: [String] = ["One", "Two", "Three", "Four"]
    @State var counter = 0
    var body: some View {
        VStack {
            Button(action: {
                
                counter += 1
                
            }, label: {
                Text("Next Image")
            })
        }
        .background(Image(listOfImages[counter]))
        .padding()
    }
}

字符串
我已经尝试了我的应用程序与约20图像,和内存不断上升.我看到其他帖子说,在某些时候,它要么自动释放一些内存或应用程序崩溃.我想知道是否有可能保持稳定的内存使用,如果是,如何?我的图像是绘图.

7vhp5slm

7vhp5slm1#

你不需要管理内存,它是自动处理的。你可以使用视图,它可以根据需要加载和卸载图像(或组合视图)。这些视图的名称中有Lazy,如LazyVStack,LazyHStack,LazyVGrid等。
您也可以查看以下链接:UIImage
勾选“特殊注意事项”-它建议使用UIImage而不是Image

相关问题