[iOS/Swift] UIDatePicker & DateFormatter

민니·2022년 6월 29일
0

iOS

목록 보기
6/22

UIDatePicker❓

  • 날짜와 시간을 입력하기 위한 컨트롤
  • UIControl을 상속받음


datePicker 구현을 위해

  • datePickerMode: date picker의 구성을 결정하는 프로퍼티. time, date, dateAndTime, countDownTimer이 있음.

  • preferredDatePickerStyle: date picker의 스타일을 지정하는 프로퍼티. automatic, compact, inline, wheels가 있음. (wheels가 우리가 일반적으로 사용하는 스타일)

  • locale: date picker에 사용하는 국가를 입력하는 프로퍼티

  • addTarget(_:action:for:): UIControl 객체가 이벤트에 응답하는 방식을 설정하는 메서드
    📚 target: 타겟 설정
    📚 action: 이벤트가 발생하였을 때 그에 응답하여 호출된 메서드(Selector)
    📚 for: 이 이벤트에 따라 action 메서드가 호출됨



DateFormatter

  • date와 text를 변환해 주는 포맷


구현하기

  1. viewController에 textField를 삽입한 뒤, 연결

  1. UIDatePicker의 인스턴스 프로퍼티와, Date형 프로퍼티를 만들어 줌

  1. configureDatePicker() 함수 작성
  • date로 모드 선택
  • wheels로 스타일 선택
  • addTarget 메서드 작성 (action 파라미터는 datePickerValueDidChanged)

3-1. datePickerValueDidChanged(_ datePicker: UIDatePicker) 함수 작성

  • DateFormatter() 객체 생성
  • dateFormat 으로 어떤 모양으로 날짜와 시간을 가져올지 작성(하고 싶은대로!)
  • locale을 통해 날짜와 시간을 나타낼 언어 결정
  • date에 대입
  • dateTextField에 string으로 변환하여 나타냄

3-2. configureDatePicker()에서 dateTextField.inputView를 datePicker로 지정해 주어야 함.

  • inputView : UITextField가 first Responder가 되었을 때 나오는 뷰. UITextField가 first Responser가 되면, 시스템 키보드가 default이므로 inputView로 datePicker을 사용해 주어야 함.
    (UITextField뿐만 아니라 여러 Responder object가 있음)

+)

  • dateFormat = "MM/dd/yyyy"
  • dateFormat = "EEEE/MM월/dd일/yyyy년"
  • dateFormat = "E/MM월/dd일/yyyy년"




출처)
https://developer.apple.com/
https://zeddios.tistory.com/291

0개의 댓글