iOS Make a countdown timer

운영 체제: macOS Ventura 13.4.1
사용 버전: Xcode 14.3.1, Swift, SwiftUI

iOS Make a countdown timer를 알아보겠습니다.

숫자가 점점 줄어드는 시계를 만들 건데요.

Timer를 사용해서 만들 겁니다. 아래는 공식 문서입니다.

https://developer.apple.com/documentation/foundation/timer


처음 시작 구조입니다.








12 번째 줄처럼 시작 시간을 받을 Date를 하나 만듭니다.

13 번째 줄처럼 얼마나 흘렀는지 비교할 Date를 하나 만듭니다.

15 번째 줄처럼 Timer를 하나 만듭니다. 현재는 nil로 합니다.







22 번째 줄에 onAppear를 추가합니다.

23 번째 줄에서 .isValid를 사용하여, timer가 작동 중인지 확인합니다.

24 번째 줄에서 작동 중이면 invalidate를 사용하여 정지시킵니다.

27 번째 줄에서 Timer.scheduledTimer를 사용하여 작업을 예약합니다.

withTimeInterval에는 초 단위가 들어가고, repeats는 반복할 것인지를 나타냅니다. block에는 타이머가 작동할 때마다 작동할 코드가 들어갑니다.







17 번째 줄에 종료될 시간을 적어줍니다. 저는 10 초를 줬습니다.

33 번째 줄에 currentDate에 계속 새로운 값을 넣어줍니다.

34 번째 줄에 compareDate와의 거리를 .distance로 구하고 Int형으로 변경해 줍니다.








19 번째 줄에 시간을 나타낼 변수 timerString을 넣어줍니다.

23 번째 줄에 Text에 timerString을 넣어줍니다.







37 번째 줄에서 타이머 숫자가 목표한 숫자보다 크거나 같으면, 38 번째 줄에서 취소를 시킵니다.








44 번째 줄에 timeConverter라는 함수를 만듭니다. 숫자를 시계 형식으로 바꿔주는 함수입니다.

50 번째 줄에서 String format을 사용하여 지정한 형식으로 변경합니다.








다시 처음으로 올라와서 19 번째 줄에 timerString을 다음과 같이 변경합니다.







글자를 누르면 작동할 수 있게 body 부분을 수정합니다.

28 번째 줄에 onTapGesture를 추가합니다.

29 번째 줄에 compareDate를 현재 시간으로 수정해 줍니다.

30 번째 줄에 currentDate를 현재 시간으로 수정해 줍니다.

48 번째 줄에 onTapGesture를 추가합니다.








실행해 봅시다.




끝.



카테고리: iOS

댓글

이 블로그의 인기 게시물

Python OpenCV 빈 화면 만들기

Python urllib.parse.quote()

Python bytes.fromhex()

Android AVD Ram size change

Forensics .pyc 파일 .py로 복구하기

Android Minimum touch target size

KiCad 시작하기 7 (FreeRoute 사용하기 2)

Android Notification with Full Screen

C++ OpenCV 모폴로지 침식, 팽창

KiCad 시작하기 2 (PCB 만들기)