【问题标题】:Display Events from API in FSCalendar在 FSCalendar 中显示来自 API 的事件
【发布时间】: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 因为我将滚动日历,它将从服务器获取并在那里设置

标签: ios json swift4 xcode9 fscalendar


【解决方案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方法中调用这个数组
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-21
相关资源
最近更新 更多