[swift] FSCalendar에서 휴일에 특정 이미지 추가하기

FSCalendar는 iOS에서 매우 인기있는 캘린더 라이브러리입니다. 이 라이브러리를 사용하여 휴일에 특정 이미지를 추가하는 방법을 알아보겠습니다.

1. 이미지 파일 준비

먼저, 휴일에 표시할 이미지 파일을 준비해야 합니다. 이 이미지 파일은 png 또는 jpg 형식이어야 합니다. 원하는 이미지를 프로젝트의 리소스에 추가한 후, 이미지 파일의 이름을 기억해두세요.

2. FSCalendarDelegate 메서드 구현

FSCalendarDelegate 프로토콜을 채택하여 휴일에 특정 이미지를 추가할 수 있습니다. 다음과 같이 코드를 작성하여 해당 기능을 구현할 수 있습니다.

func calendar(_ calendar: FSCalendar, cellFor date: Date, at monthPosition: FSCalendarMonthPosition) -> FSCalendarCell {
    let cell = calendar.dequeueReusableCell(withIdentifier: "calendarCell", for: date, at: monthPosition)
    
    // 휴일에 특정 이미지 설정
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy/MM/dd"
    
    let holidayDates = ["2021/07/01", "2021/07/15", "2021/08/15"] // 휴일로 지정할 날짜들
    
    let dateString = formatter.string(from: date)
    if holidayDates.contains(dateString) {
        let holidayImage = UIImage(named: "holidayImage")
        cell.imageView.image = holidayImage
    }
    
    return cell
}

위 코드에서 calendarCell은 FSCalendarCell의 identifier입니다. 셀에 이미지를 추가하기 위해 cell.imageView.image를 설정합니다. 휴일로 지정할 날짜들을 holidayDates에 문자열 형태로 저장한 후, 해당 날짜이면 cell.imageView.image를 설정하여 이미지를 추가합니다.

3. FSCalendar 초기화

마지막으로, FSCalendar를 초기화하는 코드를 작성해야 합니다. 다음은 FSCalendar를 초기화하고 FSCalendarDelegate를 설정하는 예시 코드입니다.

let calendar = FSCalendar(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
calendar.delegate = self

위 코드에서 self는 FSCalendarDelegate를 구현한 클래스의 인스턴스를 가리킵니다. 이제 위 코드를 실행하면 휴일에 설정한 이미지가 캘린더에 표시됩니다.

마무리

FSCalendar에서 휴일에 특정 이미지를 추가하는 방법을 배웠습니다. FSCalendarDelegate를 활용하여 원하는 날짜에 특정 이미지를 표시할 수 있습니다. 이 기능을 통해 사용자에게 더 많은 정보를 제공할 수 있으며, 더 나은 사용자 경험을 제공할 수 있습니다.

참고 자료