如何使用 FSCalendar 在有事件的圆圈中显示日期?

Posted

技术标签:

【中文标题】如何使用 FSCalendar 在有事件的圆圈中显示日期?【英文标题】:How to display the date in circle having event using FSCalendar? 【发布时间】:2020-06-09 11:43:43 【问题描述】:

我已经使用 swift 以编程方式添加了 FSCalendar,并从 api 调用中获取事件列表。默认情况下,事件在事件日期下方显示为点。但是我需要将事件显示在圆圈中,而不是日期下方的点。我尝试了很多方法,但都不起作用。有什么办法吗?

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

【问题讨论】:

【参考方案1】:

首先,您必须为 FSCalendar 定义 DataSource 和 Delegate。

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

var eventsDateArray: [Date] = [SomeDatesExample]

所以,我使用 FSCalendarDelegateAppearance 来更改单元格的外观,当我的日期被渲染时,使用方法 titleDefaultColorForfillDefaultColorFor

 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 


基本上你必须检查你的日期是否正在显示,然后返回一个颜色。

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

【讨论】:

以上是关于如何使用 FSCalendar 在有事件的圆圈中显示日期?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 FSCalendar swift 中禁用用户交互?

如何在 swift 4 中显示 FSCalendar 上的事件点?

如何以编程方式选择日期并在 FSCalendar 上显示

Swift FSCalendar 在表格视图的日历显示事件中选择日期

如何在有一定要求的情况下绘制这样的分段圆

在 FSCalendar 中显示来自 API 的事件