2017-02-21 5 views
0

Ich habe eine Stoppuhr und ich muss die Stopp-Taste deaktivieren, bis eine verstrichene Zeit oder größer, ich habe es funktioniert, aber wenn ich vor der verstrichenen Zeit auf die Stopp-Taste klicken würde (was nichts passiert), dann klicken Sie darauf, wenn die Zeit abgelaufen ist, funktioniert es nicht. Wenn ich das den Timer starten und warten, bis es oder lassen Sie passieren, wenn> 10 Sekunden es gut funktioniertAktivieren/Deaktivieren einer Schaltfläche in Xcode 8

@IBAction func firstHalfClicked(_ sender: UIButton) { 

     if startStopWatch == true { 
      timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(StopWatchVC.updateStopwatch), userInfo: nil, repeats: true) 
      startStopWatch = false 
      self.firstHalf.alpha = 0.2 
      self.secondHalf.alpha = 0.2 
      self.endFirstHalf.alpha = 0.2 
      self.endSecondHalf.alpha = 0.2 
      seconds = 0 
      minutes = 0 
      tempTimelineLbl.text = "Kick Off here at " 
     } 
    } 

    @IBAction func endFirstHalfClicked(_ sender: UIButton) { 

     if seconds < 10 { 
      endFirstHalf.isEnabled = false 
     } else { 
      if startStopWatch == false && seconds > 10 { 
       endFirstHalf.isEnabled = true 
       timer.invalidate() 
       startStopWatch = true 
       seconds = 0 
       minutes = 45 
       stopwatchLabel.text = "45:00" 
       tempTimelineLbl.text = "Half Time" 
       self.secondHalf.alpha = 1 
       self.firstHalf.alpha = 0.2 
       self.endFirstHalf.alpha = 0.2 

      } 
     } 
    } 

Antwort

0

Derzeit entscheiden Sie, ob die Schaltfläche aktiviert werden soll oder nicht nach der Benutzer tippt es. Wenn Sie also vor Ablauf von 10 Sekunden auf die Stopp-Taste tippen, wird die Schaltfläche deaktiviert. Dies bedeutet, dass sie nicht mehr angetippt werden kann, da die Taste nicht mehr aktiviert werden kann.

Ihre firstHalfClicked Methode sollte die Stopp-Taste deaktivieren. Ihre updateStopwatch Methode sollte die Schaltfläche einmal 10 Sekunden (oder welches Intervall Sie möchten) haben bestanden. endFirstHalfClicked sollte nur den Code aus dem else Block in es minus die Zeile, die endFirstHalf ermöglicht.

+0

Macht Sinn – Chet