在 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 的事件的主要内容,如果未能解决你的问题,请参考以下文章