在 FSCalendar 中显示来自 API 的事件

Display Events from API in FSCalendar

这是我对 api

的回复
SUCCESS: { 
  "5": {
  "count": 1,
  "topEvent": false
  },
  "6": {
  "count": 1,
  "topEvent": false
  },
  "7": {
  "count": 3,
  "topEvent": true
  },
  "success": 1
}

在此回复中,我在第 5、6 和 7 天有活动,其余日子没有活动。 现在,我需要在日历图标的中心显示计数,当 topEvent 为真时它应该是绿色的。

我在

中应用了什么逻辑
func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {

}

请帮帮我..

如果您有日期参数,则要根据日期设置事件。 DateFormatter 和变量的实例:

var datesWithEvent = ["2015-10-03", "2015-10-06", "2015-10-12", "2015-10-25"]

var datesWithMultipleEvents = ["2015-10-08", "2015-10-16", "2015-10-20", "2015-10-28"]

fileprivate lazy var dateFormatter2: DateFormatter = {
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    return formatter
}()

func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {

    let dateString = self.dateFormatter2.string(from: date)

    if self.datesWithEvent.contains(dateString) {
        return 1
    }

    if self.datesWithMultipleEvents.contains(dateString) {
        return 3
    }

    return 0
}

为了高亮事件

func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, eventDefaultColorsFor date: Date) -> [UIColor]? {
        let key = self.dateFormatter2.string(from: date)
        if (self.remainderDates.contains(key)) {
            return [UIColor.red]
        }
        return nil
    }