Swift개발

[Swift] DatePicker, Mode 및 Style, Locale 속성 변경하기(코드)

녹차맛고양이 개발강좌 및 IT리뷰 2022. 5. 24. 10:26

UIDatePicker에서 제공해주는 기본적으로 사용가능한 Mode와 Style이 있습니다.

포맷이나 형식을 더 변경하고 싶은 경우를 제외하고

기본적으로 제공해주는 옵션으로 수정하시는 경우에 대한 예시들 입니다.

 

1. Style

DatePicker에 .preferredDatePickerStyle속성의 값으로 변경합니다.

wheels, compact, inline의 속성이 있습니다.

-wheels

 

기본적으로 생각하는 모양입니다.

datePickerMode에 맞는 형식을 바로 휠로 돌려서 맞추는 방식입니다.

 

let datePicker = UIDatePicker()
.
.
.
datePicker.preferredDatePickerStyle = .wheels

 

-compact

 

작게 선택한 날짜가 표시되며

터치시 Picker가 나옵니다.

 

let datePicker = UIDatePicker()
.
.
.
datePicker.preferredDatePickerStyle = .compact

 

-inline

 

바로 Picker화면으로 달력 화면을 보여줍니다.

 

let datePicker = UIDatePicker()
.
.
.
datePicker.preferredDatePickerStyle = .inline

 

 

 

2. Mode

DatePicker의 .datePickerMode 속성의 값을 변경하여 설정합니ㅏ.

선택하는 Date의 포맷을 설정합니다.

속성 값으로는 date, time, dateAndTime, countDownTimer가 있습니다.

 

- date

yyyy/MM/dd(년/월/일)을 선택하는 모드입니다.

 

- time

hh : mm(시 : 분) 오전/오후를 포함한 시간을 선택하는 모드입니다.

 

- dateAndTime

yyyy/MM/dd, hh : mm(년/월/일, 시 : 분)을 선택하는 모드입니다.

 

- countDownTimer

hh : mm(시 : 분)을 카운트 다운 형식으로 선택하는 모드입니다.

 

 

3. Locale

DatePicker의 locale에 Locale로 속성을 주면 됩니다.

예시 화면과 코드입니다.

 

 

let datePicker = UIDatePicker()
.
.
.
//한국
datePicker.locale = Locale(identifier: "ko_KR")
//영어(미국)
datePicker.locale = Locale(identifier: "en_US")

 

 

4. Style과 Mode 조합

각각의 Style과 Mode에는 적용 가능한 옵션에 차이가 있습니다.

예를 들어 wheels에서는 모든 Mode가 선택 가능하지만

compact, inline에서는 선택 불가능한 Mode가 존재 합니다.

아래에 Style에 따른 선택 가능한 Mode를 정리해뒀습니다.

 

그리고 적용 예시 화면입니다.

 

- wheels + date, time, dateAndTime, countDownTimer

 

wheels + date
wheels + time
wheels + dateAndTime
wheels + countDownTimer

 

- compact + date, time, dateAndTime

 

compact + date
compact + time

 

compact + dateAndTime

 

- inline + date, time, dateAndTime

 

inline + date
inline + time
inline + dateAndTime