Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swiftui 如何在按下按钮后创建指令提示?_Swiftui - Fatal编程技术网

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查看选项卡视图-请参阅。如果您想创建入职视图,它可能会对您有所帮助。