在 FSCalendar 中显示来自 API 的事件

Posted

技术标签:

【中文标题】在 FSCalendar 中显示来自 API 的事件【英文标题】:Display Events from API in FSCalendar 【发布时间】:2018-02-14 07:19:42 【问题描述】:

这是我的 api 回复

SUCCESS:  
  "5": 
  "count": 1,
  "topEvent": false
  ,
  "6": 
  "count": 1,
  "topEvent": false
  ,
  "7": 
  "count": 3,
  "topEvent": true
  ,
  "success": 1

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

我应用了什么逻辑

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


请帮帮我..

【问题讨论】:

首先确保 5,6,7 必须是日期而不是数字。 我已经用过了,基本上它需要日期参数 这些是您当前月份的 5、6、7 天?您需要与那些日子形成一个日期并与委托方法提供的日期进行比较 我可以从 FSCalendar 获取当前年份和月份 URL: calendar/month/year where, month 1 - 12 year in yyyy 方法: GET 因为我将滚动日历,它将从服务器获取并在那里设置 【参考方案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
    

【讨论】:

谢谢,那么计数呢?它应该是日历图标的中心,并且当 topEvent 为真时它应该是绿色的。 等我查一下 我也加了高亮颜色的方法 好的,现在我明白了一点点逻辑。现在我想调用我的 api URL:日历/月/年,其中,yyyy 中的第 1 个月 - 12 年方法:GET 因为我将滚动calendar ,它将从服务器获取并在那里设置。每次 api 调用时日历滚动时..你能告诉我该怎么做吗? 制作一个简单的数组,点击API并将所有日期映射到数组中,然后在CALENDERS方法中调用这个数组

以上是关于在 FSCalendar 中显示来自 API 的事件的主要内容,如果未能解决你的问题,请参考以下文章

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

如何在 FSCalendar 中删除所有周末

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

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

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

如何使用 FSCalendar 为日期显示 2 个不同颜色的点?