[swift] FSCalendar에서 오늘 날짜 강조 표시

FSCalendar는 iOS에서 사용할 수 있는 우수한 달력 라이브러리입니다. 이 라이브러리를 사용하여 앱에 사용자 정의 달력을 구현할 수 있습니다. 여기서는 FSCalendar를 사용하여 현재 날짜를 강조하는 방법을 알아보겠습니다.

Step 1: FSCalendar 설치

FSCalendar를 사용하기 위해 먼저 프로젝트에 FSCalendar를 설치해야 합니다. FSCalendar는 CocoaPods를 통해 설치할 수 있습니다.

pod 'FSCalendar'

프로젝트의 Podfile에 위 코드를 추가하고 터미널에서 pod install 명령을 실행하여 FSCalendar를 설치합니다.

Step 2: FSCalendar 구현

FSCalendar를 구현하기 위해 먼저 FSCalendarDelegate 프로토콜을 적용하고, FSCalendarDataSource 프로토콜에서 필요한 데이터를 제공해야 합니다.

import FSCalendar

class CalendarViewController: UIViewController, FSCalendarDelegate, FSCalendarDataSource {

    @IBOutlet weak var calendar: FSCalendar!

    override func viewDidLoad() {
        super.viewDidLoad()
        
        calendar.delegate = self
        calendar.dataSource = self
    }
    
    // 현재 날짜를 강조하기 위한 셀 스타일 변경
    func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, titleDefaultColorFor date: Date) -> UIColor? {
        if Calendar.current.isDateInToday(date) {
            return .red
        } else {
            return .black
        }
    }
}

위 코드에서는 CalendarViewController 클래스에 FSCalendarDelegateFSCalendarDataSource 프로토콜을 적용하고, calendar 인스턴스를 이용하여 뷰 컨트롤러에 FSCalendar를 추가합니다.

calendar(_:appearance:titleDefaultColorFor:) 메서드를 사용하여 셀의 스타일을 변경합니다. Calendar.current.isDateInToday(date)를 사용하여 현재 날짜인지를 체크하고, 현재 날짜이면 빨간색으로, 그렇지 않으면 검은색으로 설정합니다.

Step 3: Storyboard에서 연결

FSCalendar를 사용하기 위해 Storyboard에서 CalendarViewController의 인스턴스를 생성하고, 이를 IBOutlet으로 연결합니다.

FSCalendar-Storyboard

만약 Storyboard를 사용하지 않고 코드로 뷰를 생성하는 방식으로 FSCalendar를 구현하고자 한다면, calendar에 대한 IBOutlet을 제거하고 코드에서 직접 만들어 사용할 수 있습니다.

Step 4: 결과 확인

앱을 실행하고 현재 날짜를 확인해 보세요. 오늘 날짜는 빨간색으로 강조되어 표시됩니다.

결론

FSCalendar를 사용하여 iOS 앱에서 현재 날짜를 강조 표시하는 방법에 대해 알아보았습니다. FSCalendar의 다양한 기능과 설정을 통해 사용자 정의 달력을 만들어보세요. FSCalendar 공식 문서(링크: FSCalendar 공식 문서)를 참조하여 더 자세한 사용 방법을 알아보세요.