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