[UIkit] Timer

도윤·2021년 7월 28일
0

iOS

목록 보기
2/11

타이머는 일정 시간 구간동안 반복적으로 원하는 함수를 수행하거나 일정 시간 후 원하는 함수를 수행하는 등의 기능을 한다.

해당 내용은 애플 공식문서 https://developer.apple.com/documentation/foundation/timer/를 보고 작서하였습니다!


Timer 작성 방법

Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: #selector(updateUI), 
userInfo: nil, repeats: false)

Timer 클래스를 작성하여 클래스 내의 메서드인 scheduledTimer을 사용하면 된다.

반환값은 Timer로

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

이처럼 특정 조건이 됐을 때 timer을 종료하거나 설정값을 변경하고자 한다면 Timer을 상수나 변수에 선언하면 된다.

이제 scheduledTimer의 매개변수의 속성에 대해 알아보겠습니다!

  • timeInterval
    말 그대로 시간 구간을 정해주는 것으로 위에 선언된 코드에서는 0.2초의 구간마다 해당하는 명령이 실행되도록 설정했다.
  • target
    타이머가 지정한 target에 selector을 보낸다. 현재까지 대부분 self를 사용한다.
  • selector
    timeInterval이 지나고 지정한 target에게 해당 메세지를 전송하도록 한다. 대부분 함수가 쓰여지고 object-c 형태로 func 앞에 @objc를 작성해야 한다.
  • userInfo: timer함수에 userInfo 값을 전달해준다. 매개변수 역할을 한다.
  • repeats : bool type으로 true이면 강제로 종료할 때 까지 계속 반복되며, false이면 호출 후 한번만 실행된다.
 Timer.scheduledTimer(withTimeInterval: 0.2, repeats: false, block: {_ timer in
            print("hello")
        })

이 처럼 closure을 이용하여 block 뒷 부분에 매개변수 timer와 명령문을 작성하여 사용할 수도 있다.

타이머 종료

timer의 repeat을 true로 할당한 경우 강제로 종료할 수 있는 종료 메서드가 있다.

timer.invalidate()

종료를 사용할 경우 타이머를 설정할 때 return값을 변수 또는 상수에 할당하여야 한다.

0개의 댓글