首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在尝试制作一个计算WPM的应用程序

我正在尝试制作一个计算WPM的应用程序
EN

Stack Overflow用户
提问于 2020-01-25 08:05:38
回答 1查看 51关注 0票数 0

我正在尝试做一个计算WPM的应用程序。在游戏结束时,我想使用计时器在60秒后停止应用程序。我想不出该怎么阻止它。我试着用条件语句来阻止它。但我不知道如何用SwiftUI实现它。如果任何人有任何其他想法,那将是很棒的。

代码语言:javascript
复制
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)")
                                    if durationTimer == 60 {
                                                .alert(isPresented: $showAlert) {
                                            Alert(title: Text("Reminder"), message: Text("You wrote"), primaryButton: .default(Text("Yes"), action: { self.presentationMode.wrappedValue.dismiss() })
                                                , secondaryButton: .cancel(Text("No")))
                                        }; else {
                                                                            }




                  }
            }

        }

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()
    }
}

}
EN

回答 1

Stack Overflow用户

发布于 2020-01-25 11:54:56

我修改了一些代码给你一些线索。

代码语言:javascript
复制
      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)").alert(isPresented: self.$durationTimer.count) {
                                            Alert(title: Text("Reminder"),
                                                  message: Text("You wrote"),
                                                  primaryButton: .default(Text("Yes"), action: { self.presentationMode.wrappedValue.dismiss()
                                                print(123)
                                            })
                                                ,
                                                  secondaryButton: .cancel(Text("No")))
                    }




                  }
            }

        }


class TimerHolder : ObservableObject {
var timer : Timer!


   @Published var count = false

    init(){
        self.start()
    }

func start() {
    self.timer?.invalidate()
    self.count = false
    self.timer = Timer.scheduledTimer(withTimeInterval: 60, repeats: true) {
        _ in
        self.count = true
        print(self.count)
    }
}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59905167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档