希望您到目前为止过得愉快...
我正在尝试使用FSCalendar
库在Swift iOS中构建Calendar应用,效果很好。现在,在字典中,我保存了日期和该日期的匹配数据,因此我在这篇文章中称其为事件。
当用户单击与字典中数据匹配的日期时,我尝试在标签中显示数据。 为此,我制作了appDelegate,如可可豆荚-FSCalendar主页中所述...
func calendar(_ calendar: FSCalendar, didDeselect date: Date, at monthPosition: FSCalendarMonthPosition) {
let dateString = stringFromDate(date as Date)
print(dateString)
print(dateprotocol.keys.contains(dateString))
if(dateprotocol.keys.contains(dateString)){
calendarlabel.text = dateprotocol[dateString]
}
}
所以我知道事件不是100%相同,但是没有这样的事件。在https://cocoapods.org/pods/FSCalendar上有一个名为'didSelectDate'的事件,当我手动键入该事件时,该事件将不会触发。
否则,在我的代码示例中,它触发得太晚了,因此,当我选择显示事件所在数据的日期时,仅当我单击带有数据的日期后才选择其他日期时...知道为什么或者我该如何解决?也许可以通过编程方式拨打其他日期?
答案 0 :(得分:1)
似乎您是在didDeselect date
委托函数中而不是在didSelect date
中执行此操作。这就解释了为什么在下一个选择时触发该事件:-)
如果您在尝试添加didSelect
函数时未将其包含在建议中,请确保您的ViewController是否已确认为FSCalendarDelegate
和{{ 1}} ,如下所示,并使用FSCalendarDataSource
功能,而不是您的功能:
didSelect
希望这对您有帮助!