[swift] FSCalendar에서 휴일 표시 기능

FSCalendar는 iOS 애플리케이션에서 사용할 수 있는 유용한 캘린더 라이브러리입니다. 이 라이브러리를 사용하여 휴일을 표시하는 기능을 구현하는 방법을 알아보겠습니다.

1. 휴일 데이터 준비

휴일을 표시하기 위해 해당 날짜의 데이터가 필요합니다. 여기서는 간단한 예시로 배열로 휴일 데이터를 준비합니다.

let holidays = ["2022-01-01", "2022-02-05", "2022-02-06", "2022-02-12"]

2. 캘린더에 휴일 표시하기

FSCalendarDelegate의 calendar:appearance:titleDefaultColorForDate: 메서드를 구현하여 휴일을 표시합니다.

func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, titleDefaultColorFor date: Date) -> UIColor? {
    let dateString = DateFormatter.localizedString(from: date, dateStyle: .medium, timeStyle: .none)
    
    if holidays.contains(dateString) {
        return .red   // 휴일은 빨간색으로 표시
    } else {
        return nil   // 그 외의 날짜는 기본 색상 사용
    }
}

3. 휴일 표시 설정

FSCalendar의 appearance 속성을 사용하여 휴일 표시에 대한 스타일을 설정할 수 있습니다.

calendar.appearance.titleDefaultColor = UIColor.gray   // 기본 날짜 색상
calendar.appearance.titleDefaultFont = UIFont.systemFont(ofSize: 15)   // 기본 날짜 폰트 크기
calendar.appearance.titleWeekendColor = UIColor.red   // 주말 날짜 색상

4. 실행 결과

위의 설정을 통해 FSCalendar에 휴일이 표시되는 모습은 다음과 같습니다.

FSCalendar Holiday Example

참고 문서