iOS Make a countdown timer
운영 체제: macOS Ventura 13.4.1
사용 버전: Xcode 14.3.1, Swift, SwiftUI
Timer를 사용해서 만들 겁니다. 아래는 공식 문서입니다.
https://developer.apple.com/documentation/foundation/timer
사용 버전: 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
댓글
댓글 쓰기
궁금한 점은 댓글 달아주세요.
Comment if you have any questions.