[swift] FSCalendar에서 이벤트 삭제 기능

FSCalendar는 iOS에서 아름다운 달력을 표시하는 데 사용되는 인기있는 오픈 소스 라이브러리입니다. 이 라이브러리를 사용하여 달력에 이벤트를 추가하고 관리하는 기능을 구현할 수 있습니다. 이번 포스트에서는 FSCalendar에서 이벤트를 삭제하는 방법을 다루겠습니다.

이벤트 삭제하기

FSCalendar에서 이벤트를 삭제하기 위해서는 다음 단계를 따르면 됩니다:

  1. 삭제하려는 셀의 event 배열에서 해당 이벤트를 찾습니다.
  2. 이벤트를 삭제하고 배열을 업데이트합니다.
  3. 셀을 리로드하여 변경 사항을 적용합니다.
// FSCalendarDelegate의 didDeselect delegate 메서드를 구현합니다.
func calendar(_ calendar: FSCalendar, didDeselect date: Date, at monthPosition: FSCalendarMonthPosition) {
    // 삭제할 이벤트를 찾습니다.
    guard let events = calendar.event(for: date) else { return }
    if let eventIndex = events.firstIndex(where: { $0.title == "삭제할 이벤트 이름" }) {
        // 이벤트를 삭제하고 배열을 업데이트합니다.
        events.remove(at: eventIndex)
        calendar.set(events, for: date)
        // 해당 셀을 리로드하여 변경 사항을 적용합니다.
        calendar.reloadDates([date])
    }
}

위의 코드에서는 FSCalendarDelegate의 didDeselect 메서드를 사용하여 선택 해제된 날짜에 대한 이벤트 삭제를 처리하고 있습니다. 이 메서드는 달력에서 날짜 선택 해제 시 호출됩니다.

위의 코드에서 "삭제할 이벤트 이름"은 실제 삭제하려는 이벤트의 이름으로 대체해야 합니다. 또한 calendar.reloadDates([date])를 통해 해당 날짜의 셀을 리로드하여 변경 사항을 적용합니다.

이렇게 하면 FSCalendar에서 이벤트를 삭제할 수 있는 기능을 구현할 수 있습니다.

참고 자료