ダメリのブログ

日々の失敗・キャリア・プログラミング・株・毎日の失敗等。誰かの役に立てれば幸いです。

目指せ脱初心者 swift タイマー

ども

ダメリです。

 

備忘のために表題の件。

 

必要な機能

①分ボタンを押したら、「1分→2分・・・」と増えていく。/秒も同じ

②リセットボタンを押したら、「00:00」に戻る。

③スタートボタン押したらカウントダウンスタート/ストップ押したらストップ

④カウントし終わったら、画像を赤に。

 

必要な部品

時間をカウントする変数 countNum

タイマーが起動しているか起動していないか判別する変数 timerRunning

タイマー機能変数  var timer =  NStimer()

 

 

画像の変化を扱うため? 画像を定数に格納

let img01:UIimage! = UIimage(named"timer.png")

let img02:UIimage! = UIimage(named"timer2.png")

 

 

インターフェイス側からラベル・画像・ボタン4つをそれぞれ接続

 

①まずは分ボタンを押したら、60ずつ足していく

 

countNum = countNum + 60

 

②秒ボタン押したら、1ずつ足す。

countNum = countNum + 1

 

③リセット押したら00:00にする。カウントダウンしきった場合は画像を黒に戻す。

countNum = 0

imageView.image = img01

 

④スタートボタンを押したら、カウントダウン開始

countNum = countNum - 1

 

インターフェイス側のラベルを時間とともに変更

func labelUpdate{

let minut = String(countNum/60)

let second = String(countNum % 60)

let display = minut + ":" + second

label.text = display}

 

⑥残りのボタン3つの中にlabelUpdate()を入れる

 

⑦ストップ機能/スタート機能

if timerRunning = true{

timer.invalidate()

timerRunning = false

}else{

timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("update"), userInfo: nil, repeats: true)

timerRunning = true’’’

}

 

NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("update"), userInfo: nil, repeats: true)は1秒ごとに関数updateを呼び起こす。

 

⑧スタートボタンのプログラム update

 

func(){

countNum = countNum - 1

labelUpdate()

if countNum == 0{

timer.invalidate()

timerRunning = false

imgView.image = img02

}

}