SwiftUI-如何使用按钮和计时器显示文本

SwiftUI-如何使用按钮和计时器显示文本,swiftui,Swiftui,我想文字从字典出现时,按钮被按下。 “Text1”在开头。如果按下该按钮,则带有Text2的标签应显示在开始标签下。然后在3秒钟后自动创建一个带有Text3的标签。最初我尝试了一个列表,但不幸的是我没有得到它。 如果有人有主意那就太好了 struct ContentView: View { var chats = [ "Text1" : "Hello?", "Text2" : "Here!",

我想文字从字典出现时,按钮被按下。 “Text1”在开头。如果按下该按钮,则带有Text2的标签应显示在开始标签下。然后在3秒钟后自动创建一个带有Text3的标签。最初我尝试了一个列表,但不幸的是我没有得到它。 如果有人有主意那就太好了

struct ContentView: View {

   var chats = [
                "Text1" : "Hello?",
                "Text2" : "Here!",
                "Text3" : "And here!",
               ]

    var body: some View {

        NavigationView {

            VStack {
                Button(action: {}) {
                    Text("Button")
                }

                HStack {
                    Image (systemName: "faceid")
                    Text("\(chats["Text1"] ?? "Failure")")
                }
            }
        }
    }
}

这是你的解决方案。请试试这个

struct ContentView: View {

    var chats: [String: String] =  [
        "Text1" : "Hello?",
        "Text2" : "Here!",
        "Text3" : "And here!",
    ]

    @State var currentIndex: Int = 1


    var body: some View {

        NavigationView {
            VStack {
                Button(action: {
                    self.currentIndex = self.currentIndex + 1
                    if self.currentIndex == 2 {
                        DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
                            self.currentIndex = self.currentIndex + 1
                        }
                    }
                 print("Hello, World! Tapped")
                }) {
                    Text("Hello, World!")
                }
                HStack {
                    Image (systemName: "faceid")
                    Text("\(chats["Text\(currentIndex)"] ?? "Failure")")
                }
            }
        }
    }
}

非常感谢你的回答。这只适用于一个标签。我想让这个标签保持原样,通过点击按钮让另一个点击出现在它下面。3秒钟后,我直接从字典中找到了另一个。(所以​​无循环)。我先尝试了一个列表,但是我没有按我想要的方式得到它。(我删除了代码中的内容列表,以便更清晰)。
HStack{Image(systemName:“faceid”)VStack{Text(\(chats[“Text1”]?“Failure”))如果currentIndex==2{Text(\(chats[“Text2”]?“Failure”))}否则如果currentIndex==3{Text(\(chats[“Text2”]?“Failure”))Text(\(chats[“Text3”]?“Failure”))}}
像这样?就像那样。非常感谢。非常感谢你。