FSCalendar'didSelect'-事件触发得太晚了吗?

时间:2019-09-02 11:01:08

标签: swift events calendar click fscalendar

希望您到目前为止过得愉快...

我正在尝试使用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'的事件,当我手动键入该事件时,该事件将不会触发。

否则,在我的代码示例中,它触发得太晚了,因此,当我选择显示事件所在数据的日期时,仅当我单击带有数据的日期后才选择其他日期时...知道为什么或者我该如何解决?也许可以通过编程方式拨打其他日期?

1 个答案:

答案 0 :(得分:1)

似乎您是在didDeselect date委托函数中而不是在didSelect date中执行此操作。这就解释了为什么在下一个选择时触发该事件:-)

如果您在尝试添加didSelect函数时未将其包含在建议中,请确保您的ViewController是否已确认为FSCalendarDelegate和{{ 1}} ,如下所示,并使用FSCalendarDataSource功能,而不是您的功能:

didSelect

希望这对您有帮助!

相关问题