gpt4 book ai didi

ios - 因此,我构建了一个应用程序,该应用程序希望每分钟获得字数。如何使用SwithUI启动ContentView中不存在的计时器

转载 作者:行者123 更新时间:2023-12-01 16:13:06 25 4
gpt4 key购买 nike

我想启动一个60秒的计时器来测试用户在该分钟内可以键入多少个单词。我开始计算TextField中的字符。但是,现在我需要减少计时器,以便进行数学运算并向用户输出答案。我似乎无法弄清楚计时器不在Content View结构中时如何使用计时器。我可以那样做吗?

import SwiftUI

struct ContentView: View {
@State var userInput = ""
@State var modalview = false
@State var getstarted = false
@EnvironmentObject var timerHolder : TimerHolder
var body: some View {

ZStack() {
modalView(modalview: $modalview, userInput: userInput)

}.sheet(isPresented: $modalview) {

modalView(modalview: self.$modalview)

}

}

}




struct modalView : View {
@ObservedObject var durationTimer = TimerHolder()

@Binding var modalview : Bool
@State var userInput: String = ""


var body: some View {

VStack{

Button(action: {
self.modalview = true
}) {
TextField("Get Started", text:$userInput)
.background(Color.gray)
.foregroundColor(.white)
.frame(width: 300, height: 250)
.cornerRadius(20)

Text("\(userInput.count)")


Text("\(durationTimer.count) Seconds")

}

}
}

}

class TimerHolder : ObservableObject {
var timer : Timer!
@Published var count = 0
func start() {
self.timer?.invalidate()
self.count = 0
self.timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true) {
_ in
self.count += 1
print(self.count)
}
}






struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

}

最佳答案

当您将其作为属性时,最简单的方法是从.onAppear ...开始(当然,假设您在ContentView().environmentObject(TimerHolder())创建时以ContentView传递它)

struct ContentView: View {
@State var userInput = ""
@State var modalview = false
@State var getstarted = false
@EnvironmentObject var timerHolder : TimerHolder
var body: some View {

ZStack() {
modalView(modalview: $modalview, userInput: userInput)
}.sheet(isPresented: $modalview) {
modalView(modalview: self.$modalview)
}
.onAppear {
self.timerHolder.start()
}
}
}

关于ios - 因此,我构建了一个应用程序,该应用程序希望每分钟获得字数。如何使用SwithUI启动ContentView中不存在的计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59899273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com