Swift3으로 달력기능 구현하기

0

보통 앱을 개발하다보면 달력(캘린더) 기능이 필요한 경우가 있다.

[개발환경]

  • Xcode 8.2.1
  • Swift 3.0.1
  • CocoaPods 1.1.1

프로젝트를 만들고 CocoaPods가 설치되어 있다는 가정하에 JBDatePicker을 추가해서 캘린더를 구현해 보자.

터미널을 열고 해당 라이브러리를 아래와 같이 설치를 진행한다.

Podfile

Podfile을 수정한 후, 저장한 다음 터미널에서 아래와 같이 실행하면 설치가 진행된다.

설치후  생성된 DailyTest.xcodeproj를 실행한다. 프로젝트가 성공적으로 로드되면 Pods폴더가 존재하고 JBDatePicker가 포함되어 있는지 확인한다.

이때 Command + B를 눌러 빌드하여 오류가 없는지 확인한다.

Main.storyboard를 열고 달력을 표시할 ViewController에 View 요소를 추가한다.

다음으로  Custom class를 열고 이전에 추가한 View의 Custom class의 Class항목에 JBDatePickerView를 설정하고 엔터키를 누르면 그 아래에 있는 Module에 JBDatePicker가 자동으로 입력된다. 이때 Module에 직접 수동으로 입력할 경우 관련 라이브러리들이 연결안되는 경우가 있기 때문에 주의하자.

그럼 이제 ViewContoroller.swift파일에 코드를 위와 같이 추가하자. 새 모듈을 사용하기 위해 import를 선언하고 import JBDatePicker를 선언한다.

다음으로 화면디자인에 사용한 Main.storyboard에서 달력용 뷰를 추가했는데 해당 뷰를 IBOutlet에 연결한다.

다음으로 Delegate를 사용하도록 하기 위해 아래와 같이 선언한다.

JBDatePickerViewDelegate를 사용하기 위해 우선적으로 선언한다.

위와 같이 선언하면 이 클래스에 datePicker의 델리게이트가 존재하는 것을 명시한다.

마지막으로 delegate메소드인 didSelectDay메소드를 작성한다. 이것은 날짜를 선택시 이벤트가 발행하여 어떤 날짜를 선택했는지를 확인할 수 있다.

그리고 JBDatePicker에서 무조건 추가해야 할 viewDidLayoutSubviews()를 추가한다.

선택한 날짜값이 제대로 가져올 수 있도록 하기 위해 DataFormatter를 아래와 같이 구성해서 선언한다.

이렇게 구성하면 날짜를 선택하면 로그로 선택한 날짜가 제대로 찍힌다.

Facebook Comments

No more articles