[swift] FSCalendar에서 특정 날짜의 테두리 스타일 설정

FSCalendar는 iOS에서 사용할 수 있는 일반적인 달력 라이브러리입니다. 이 라이브러리를 사용하여 특정 날짜의 테두리 스타일을 설정하는 방법을 알아보겠습니다.

1. FSCalendarDelegateAppearance 구현하기

먼저, FSCalendarDelegateAppearance 프로토콜을 구현해야 합니다. 이 프로토콜은 달력 뷰의 외관을 커스텀할 수 있는 다양한 메서드를 제공합니다.

class ViewController: UIViewController, FSCalendarDelegate, FSCalendarDelegateAppearance {
    
    @IBOutlet weak var calendar: FSCalendar!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        calendar.delegate = self
        calendar.dataSource = self
    }
    
    // FSCalendarDelegateAppearance 메서드 구현
    func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, borderDefaultColorFor date: Date) -> UIColor? {
        // 특정 날짜에 대한 테두리 색상을 설정하는 로직을 작성하세요
    }
}

2. 특정 날짜의 테두리 스타일 변경하기

위의 코드에서 calendar(_:, appearance:, borderDefaultColorFor:) 메서드는 달력 뷰의 특정 날짜에 대한 테두리 색상을 설정하는 메서드입니다. 이 메서드에서 원하는 날짜에 대한 테두리 스타일을 변경할 수 있습니다.

func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, borderDefaultColorFor date: Date) -> UIColor? {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd"
    
    let targetDate = dateFormatter.date(from: "2022-01-01") // 특정 날짜 설정
    let borderColor = UIColor(red: 0.2, green: 0.4, blue: 0.6, alpha: 1.0) // 테두리 색상 설정
    
    if date == targetDate {
        return borderColor
    }
    
    return nil
}

위의 코드에서는 “2022-01-01” 날짜에 대한 테두리 색상을 변경하도록 설정하였습니다. 원하는 날짜와 테두리 색상을 자신의 요구에 맞게 변경하면 됩니다.

3. 실행 결과 확인하기

위의 코드를 실행하고 달력 뷰를 로드하면 “2022-01-01” 날짜에 테두리 색상이 적용된 것을 확인할 수 있습니다.

참고 자료