Swift

[Swift] 타이머 만들기

beejaem 2023. 5. 2. 18:13

버튼 클릭 시 타이머가 작동하고 다시 클릭 시 이어서 타이머가 동작하게 만들어 보기

#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