버튼 클릭 시 타이머가 작동하고 다시 클릭 시 이어서 타이머가 동작하게 만들어 보기
#timer 제목을 보여주는 label
@IBOutlet var lblTimer: UILabel!
#timer 동작 시 숫자를 보여주는 label
@IBOutlet var lblNumber: UILabel!
#Timer 동작 시 실행할 함수를 지정
let timeSelector : Selector = #selector(ViewController.updateTime)
var interval = 1.0
var count = 0
#일시정지를 위한 bool
var flag = false
#Timer 객체 생성
var timer = Timer()
이제 버튼과 updateTime 함수를 만들어주자
object-c 와 호환성을 위해 함수 앞에 @objc를 꼭 붙여줘야한다.
//selector에 지정된 함수
@objc func updateTime(){
lblNumber.text = String(count)
if flag == true {
count = count + 1
}
버튼
@IBAction func btnActive(_ sender: UIButton) {
flag = !flag
if flag == true {
timer = Timer.scheduledTimer(timeInterval: interval, target: self, selector: timeSelector, userInfo: nil, repeats: true)
sender.setTitle("STOP", for: .normal)
}else{
timer.invalidate()
sender.setTitle("RESTART", for: .normal)
}
}
flag의 값에 따라
버튼의 텍스트가 start 또는 stop으로 바뀌며, timer를 일시정지 되었다가 재시작된다.



'Swift' 카테고리의 다른 글
| [SwiftUI] 기본 지식 (0) | 2023.04.20 |
|---|---|
| [SwiftUI] 공부 1일차 (0) | 2023.04.19 |