0

这是我对 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 {

}

请帮我..

4

1 回答 1

1

如果您有日期参数,则根据日期设置事件。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
    }
于 2018-02-14T07:35:53.530 回答