Swiftui 如何在按下按钮后创建指令提示?
我正在创建一个指令对话框,它将在按下按钮后启动。我希望指令显示在同一视图中,几秒钟后被替换以显示下一条指令 指令存储在文本数组中 任何帮助都将不胜感激,因为我很难找到解决方案Swiftui 如何在按下按钮后创建指令提示?,swiftui,Swiftui,我正在创建一个指令对话框,它将在按下按钮后启动。我希望指令显示在同一视图中,几秒钟后被替换以显示下一条指令 指令存储在文本数组中 任何帮助都将不胜感激,因为我很难找到解决方案 @State var showPrompt = false @State var textToUpdate = "" let instructionTo = ["hi", "bye"] VStack { Text(textToUpdate)
@State var showPrompt = false
@State var textToUpdate = ""
let instructionTo = ["hi", "bye"]
VStack {
Text(textToUpdate)
.frame(width: UIScreen.main.bounds.width - 80, height: 350)
Button(action: {
if(self.showPrompt == false)
{
self.showPrompt = true
}
else{
self.showPrompt = false
}
}) {
if(self.showPrompt == false)
{
Text("Start")
}
else
{
Text("Stop")
// some for loop that would update the text
// and have a delay of 5 seconds between each
// index in the array
}
}
}
您可以为
文本
值添加另一个状态
变量
下面是一个示例代码,假设您想在5秒钟后点击开始按钮后开始更改文本。我刚添加了一个空字符串来显示一个空文本
struct TestView: View {
@State var showPrompt = false
@State var textIndex = 0
let instructionTo = ["", "hi", "bye"]
var body: some View {
VStack {
Text(instructionTo[textIndex])
.frame(width: UIScreen.main.bounds.width - 80, height: 350)
Button(action: {
if(self.showPrompt == false)
{
self.showPrompt = true
// update text value
self.updateText()
}
else{
self.showPrompt = false
}
}) {
if(self.showPrompt == false)
{
Text("Start")
}
else
{
Text("Stop")
}
}
}
}
func updateText() {
if self.textIndex < self.instructionTo.count - 1 {
// update text after 5 seconds
DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
self.textIndex += 1
self.updateText()
}
}
}
}
struct TestView:View{
@状态变量showPrompt=false
@状态变量textIndex=0
let InstructionOn=[“”,“你好”,“再见”]
var body:一些观点{
VStack{
文本(指向[文本索引])
.框架(宽度:UIScreen.main.bounds.width-80,高度:350)
按钮(操作:{
if(self.showPrompt==false)
{
self.showPrompt=true
//更新文本值
self.updateText()
}
否则{
self.showPrompt=false
}
}) {
if(self.showPrompt==false)
{
文本(“开始”)
}
其他的
{
文本(“停止”)
}
}
}
}
func updateText(){
如果self.textIndex
请发布您的一些代码和您试图实现的目标的图像。刚刚更新!检查now@JohnB您也可以使用PageTabViewStyle查看选项卡视图-请参阅。如果您想创建入职视图,它可能会对您有所帮助。