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

Posted

技术标签:

【中文标题】如何以编程方式选择日期并在 FSCalendar 上显示【英文标题】:How can i select dates programmatically and show on FSCalendar 【发布时间】:2017-01-23 10:10:13 【问题描述】:

我在我的项目中使用了 FSCalendar(https://github.com/WenchaoD/FSCalendar)。如果用户单击重复按钮,则事件每天都会重复。我想在我的应用程序中的日历上显示它。我该怎么做?

【问题讨论】:

首先阅读 Eventkit。您可以查看此链接以获取教程-> raywenderlich.com/64513/cookbook-making-calendar-reminder. 你理解错了。我想要我自己的使用 FSCalendar 的提醒应用程序。 【参考方案1】:

如果你想选择日期,那么下面的方法会很有帮助, 其中 calendar 是 FSCalendar 的出口。

calendar.select(calendar.today)

如果你想选择多个日期,那么最好的方法是使用事件点,这可以通过下面的 FSCalendar 数据源的委托方法来实现,

func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int //number of dots you want to show

或者如果你真的想显示选定的日期,你可以巧妙地使用下面的方法,并为你想要选择的日期返回不同的颜色,

    public func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, fillDefaultColorFor date: Date) -> UIColor?

    if your date
    
         //return the colour for your dates
    
    else
    
         //return default colour
    

希望这个答案对你有所帮助。

【讨论】:

确保您确认 FSCalendarDelegateAppearance :) 如果我们想取消选择它们,就会产生问题【参考方案2】:

对于剩余应用程序,您需要执行或使用以下操作。

1.Realm 或 Core Data - 用于数据持久性。

2.local notification - 通知用户发生了某些事件。 您需要使用具有一个属性 fireDate 属性的 UILocalNotification

【讨论】:

我不想发出通知,我想在我的应用程序中的日历上显示。我使用FSCalendar。 github.com/WenchaoD/FSCalendar. 你的问题是如何在日历中显示...?【参考方案3】:

我不知道你是如何保存这些信息的(预定日期),我可以告诉你的是你可以轻松地添加一个 dot (或者更多,如果你愿意,只需更改数字)与以下代表:

`func calendar(calendar: FSCalendar, numberOfEventsForDate date: NSDate) -> Int 
    let formatter = NSDateFormatter()
    formatter.dateFormat = "MM-DD"
    let date1 = formatter.stringFromDate(yourDate)
    let date2 = formatter.stringFromDate(date)
    return date1 == date2 ? 1 : 0
`

此方法是 FSCalendar 委托之一,它迭代当前月份的所有天(它们中的每一天都表示在 date 变量中)。在上面的示例中,我正在比较任何给定日期是否等于 yourDate 变量,该变量也必须是 NSDate,并通过 中的 NSDateFormatter 将它们都转换为字符串Month-Day 格式,因此所有月份的比较都是相等的。如果为true,则返回1(这表示1个点,您可以根据需要更改更多),否则返回特定日期以下的0个点。

此代码符合 Swift 2.3。

【讨论】:

以上是关于如何以编程方式选择日期并在 FSCalendar 上显示的主要内容,如果未能解决你的问题,请参考以下文章

FSCalendar select day 选择前一天 23:00

使用选择日期快速更新 FSCalendar 标头值

如何以编程方式在移动设备上调用本机日期选择器

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

FSCalendar - 从选定的日期创建 segue 到另一个视图控制器

添加日期选择器以编程方式查看?