首页 > 解决方案 > 当用户在 SwiftUI 中按下按钮时,如何将图像添加到 VStack?

问题描述

我想使用 SwiftUI 制作一个简单的应用程序,用户按下按钮,图像被添加到 VStack 的顶部。我怎么做?

标签: swiftui

解决方案


您可以跟踪数组中的图像名称。将该数组定义为 a @State,以便每次更改时都会重新绘制它,并使您的按钮操作在该数组的位置 0 处插入所需的图像名称。在下面的示例中,您可以在操场上看到它的运行情况(我使用的是系统图像,并且我将图像的名称存储为字符串)。

import SwiftUI
import PlaygroundSupport

struct TestView: View {

    @State var imageArray:[String] = []

    var body: some View {
        VStack{
            Button("Add Image"){
                self.addNewImage()
            }
            List(self.imageArray, id: \.self){ imageName in
                Image(systemName: imageName)
            }
        }
    }

    func addNewImage(){
        let randomImage = ["flame", "bolt", "hare", "ant"].randomElement()
        self.imageArray.insert(randomImage ?? "heart", at: 0)
    }
}
PlaygroundPage.current.setLiveView(TestView())´´´


推荐阅读