我有一个图像作为背景,当我点击按钮时,它根据计数器在数组中的位置显示以下图像。每次计数器上升,新图像被设置为背景,内存使用增加。我的图像在我的资产文件夹中,它们的大小是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图像,和内存不断上升.我看到其他帖子说,在某些时候,它要么自动释放一些内存或应用程序崩溃.我想知道是否有可能保持稳定的内存使用,如果是,如何?我的图像是绘图.
1条答案
按热度按时间7vhp5slm1#
你不需要管理内存,它是自动处理的。你可以使用视图,它可以根据需要加载和卸载图像(或组合视图)。这些视图的名称中有Lazy,如LazyVStack,LazyHStack,LazyVGrid等。
您也可以查看以下链接:UIImage
勾选“特殊注意事项”-它建议使用UIImage而不是Image