2016-08-10 3 views
0

私は200から50までカウントダウンする単純なスウィフトタイマーを持っています。スウィフトタイマー - UIButtonテキストのリセットを停止するにはどうすればいいですか?

タイマーはviewDidLoadに200に設定され、次の2つの状態を処理する単一UIButtonによって制御される。

  1. スタートタイマー(200から還元開始)
  2. 停止タイマ(タイマおよび休止を無効「スタート」、現在のカウンタ番号で上書きされます内容は:それは)

UIButtonは、プレフィルドテキストを持っています。

私が持っている問題は、私はタイマーを一時停止するには、再度ボタンを押すと、UIButtonのテキストは、プレフィルド「スタート」

にリセットされていることである私は、ユーザーが行う準備が整うまで、それはリセットしないでほしいです、リセットボタンを押してください(まだ実装されていません)

私のコードは以下の通りです。私はすぐにそれをカスタムUIButtonクラスに入れます。私はちょうどボタンラベルが開始にリセットを停止したいです。

let clockStartTime: Int = 200 

enum ClockState { 
    case Started 
    case Stopped 
} 

class ViewController: UIViewController { 

    var timer: NSTimer = NSTimer() 
    var counter: Int = clockStartTime 
    var clockState: ClockState = .Stopped 

    @IBOutlet weak var btnStart: UIButton! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     updateButtonTitle() 
    } 

    @IBAction func btnStartPressed(sender: AnyObject) { 

     if self.clockState == .Stopped 
     { 
      self.clockState = .Started 

      let timeIncrement:NSTimeInterval = 0.5 
      let repeating:Bool = true 
      timer = NSTimer.scheduledTimerWithTimeInterval(timeIncrement, target:self, selector: #selector(self.updateCounter), userInfo: nil, repeats: repeating) 
     } 
     else { 
      self.clockState = .Stopped 
      timer.invalidate() 
     } 

    } 

    func updateCounter() { 
     if counter > 50 
     { 
      counter -= 1 
     } 
     else { 
      counter = 0 
      timer.invalidate() 
     } 

     updateButtonTitle() 
    } 

    func updateButtonTitle() 
    { 
     self.btnStart.titleLabel?.text = String(counter) 
    } 
} 

問題:タイマーを一時停止するには、ボタンを押すと、ボタンのラベルテキストが、それは数それを一時停止するために押さユーザーである必要があり、「スタート」したときにリセットされます。

質問:Swiftがボタンラベルの内容を「開始」にリセットしないようにするにはどうすればよいですか?

+0

休館

self.btnStart.setTitle(String(counter), forState: UIControlState.Normal)

おかげ

\私は、問題は 'self.btnStart.titleLabel?の.text =文字列(カウンタ)'間違っていると 'self.btnStartでなければならないことだと思います。 setTitle(文字列(カウンタ)、forState:UIControlState.Normal) ' – zardon

答えて

0

私はこの問題を解決しました。

これは実際にボタンのテキストがどのように変更されたかに関係していました。

関連する問題