如何使用FSCalendar在有活动的圈子中显示日期?

时间:2020-06-09 11:43:43

标签: swift fscalendar

我已经使用swift从程序上添加了FSCalendar并从api调用中获取了事件列表。默认情况下,事件在事件日期下方显示为点状。但是我需要将事件显示在圆圈中而不是日期下方的圆点。我尝试了多种方法,但是没有用。有什么方法可以做到这一点?

 func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
   return Events[date.GetFormatedDateAsString(format: "dd.MM.YYYY")] ?? 0
 }

1 个答案:

答案 0 :(得分:0)

首先,您必须为FSCalendar定义数据源和委托。

例如,我的日历有一个Date数组:

var eventsDateArray: [Date] = [SomeDatesExample]

因此,当呈现日期时,我使用FSCalendarDelegateAppearance来更改单元格的外观,方法是使用 titleDefaultColorFor fillDefaultColorFor

 extension CalendarViewController: FSCalendarDelegateAppearance {

 // Return UIColor for numbers;

 func calendar(_ calendar: FSCalendar, 
               appearance: FSCalendarAppearance, 
               titleDefaultColorFor date: Date
 ) -> UIColor? {

      if self.eventsDateArray.contains(date) {
           return Colors.white 
           // Return UIColor for eventsDateArray 
      }

    return Colors.brownDark // Return Default Title Color
}

 // Return UIColor for Background;

func calendar(_ calendar: FSCalendar, 
            appearance: FSCalendarAppearance, 
            fillDefaultColorFor date: Date
) -> UIColor? {

    if self.eventsDateArray.contains(date) {
        return Colors.blue // Return UIColor for eventsDateArray
    }

    return Colors.white // Return Default UIColor 
}
}

基本上,您必须检查日期是否已显示,然后为其返回颜色。

如果它不起作用或有疑问,请致电。