2017-07-12 3 views
3

概要:私は誰かがある時間内に質問に答える必要があるクイズゲームを作成しようとしています。彼らは各質問を解決するのに10秒かそれは次のコントローラに移動します。問題は、フルタイムが始まる前に次の質問をクリックするたびに10にカウントダウンし続けることです。起こるべきことは、その質問の時間を数えなくてはならないということです。SwiftのTime Took変数

これまで、私はこの作業を行うために次のコードを実装しました。 var time = 0とし、最初にtimeというグローバル変数を作成しました。それから私はその後、私は次のようにそれが0のコードに達するまで、毎秒ダウンダニれるラベルを作成し、以下のようvar count = 10@IBOutlet var countDownLabel: UILabel!

をタイマーコードを作成しました:

if(count > 0) { 
    countDownLabel.text = String(count) 
    count -= 1 
    time += 1 
} 

プリント(時間)

if (count <= 0) { 
    count = 10 
    self.performSegue(withIdentifier:"NextQuestion1", sender: nil) 

} 要約:毎回のカウントダウン時間が増加するはずです。最後に、時間を表示します。

答えて

2

次のボタンをクリックすると、タイマーを無効にしてカウントを停止する必要があります。

はデモ

ある

timer.invalidate() 

はここでタイマーを停止するには、次のコード行を使用し、[次へ]ボタンをクリックしたときには、次に、このように

let timer = Timer.scheduledTimer(timeInterval: 10, target: self, selector: #selector(YourSegueFunction), userInfo: nil, repeats: false) 

をあなたのタイマーを作成したと言います

enter image description here

+0

timer.invalidate()は、ボタン? – josh

+0

@joshどういう意味ですか?ボタンのクリック機能で直接このメソッドを呼び出してタイマーを停止することができます –

+0

ボタンクリック機能でこれを呼び出す方法を説明できますか?彼らが次の質問に行くのをクリックすると、私はタイマーを停止する必要があります。 – josh

関連する問題