타이머 사용하여 1초마다 1씩 증가하기
- Timer.scheduledTimer()
- Timer.invalidate()
- Timer.isValid
ViewController.swift)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import UIKit class ViewController: UIViewController { //ui @IBOutlet weak var btnStart: UIButton! @IBOutlet weak var btnEnd: UIButton! @IBOutlet weak var txtTime: UILabel! //timer var mTimer : Timer? var number : Int = 0 override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } /** 타이머 시작버튼 클릭 */ @IBAction func onTimerStart(_ sender: Any) { if let timer = mTimer { //timer 객체가 nil 이 아닌경우에는 invalid 상태에만 시작한다 if !timer.isValid { /** 1초마다 timerCallback함수를 호출하는 타이머 */ mTimer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(timerCallback), userInfo: nil, repeats: true) } }else{ //timer 객체가 nil 인 경우에 객체를 생성하고 타이머를 시작한다 /** 1초마다 timerCallback함수를 호출하는 타이머 */ mTimer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(timerCallback), userInfo: nil, repeats: true) } } /** 타이머 종료버튼 클릭 */ @IBAction func onTimerEnd(_ sender: Any) { if let timer = mTimer { if(timer.isValid){ timer.invalidate() } } number = 0 txtTime.text = String(number) } //타이머가 호출하는 콜백함수 func timerCallback(){ number += 1 txtTime.text = String(number) } } | cs |
결과
타이머 시작 버튼을 클릭하면 숫자가 1씩 증가하며 타이머 종료 버튼을 클릭하면 타이머가 종료되고 숫자는 0이된다
'IT > - 프로그래밍' 카테고리의 다른 글
IOS (Swift) SQLite 사용하기2 - 테이블생성, 데이터 INSERT, UPDATE, SELECT (0) | 2017.10.01 |
---|---|
IOS (Swift) SQLite 사용하기1 - 라이브러리 적용 (0) | 2017.10.01 |
안드로이드 SMS 수신하기 (브로드캐스트 사용) (0) | 2017.07.29 |
안드로이드 Api로 SMS 보내기 (1) | 2017.07.28 |
안드로이드 Intent로 SMS, MMS, Mail 보내기 (1) | 2017.07.27 |