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

时间:2017-01-23 10:10:14

标签: ios objective-c cocoa fscalendar

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

3 个答案:

答案 0 :(得分:1)

如果您想选择日期,则以下方法会有所帮助, 日历是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
    }
}

希望,这个答案可以帮到你。

答案 1 :(得分:0)

对于剩余应用,您需要执行或使用以下内容。

1.Realm或核心数据 - 用于数据持久性。

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

答案 2 :(得分:0)

我不知道您是如何保留该信息的(预定日期),我可以告诉您的是,您可以轻松添加(如果您和#39; d like,只需更改数字),使用以下代理:

`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,并通过{{1}将它们转换为字符串在月 - 日格式中,所以所有月份的比较都是相同的。如果为true,则返回1(这表示1个点,如果需要,可以将其更改为更多),否则在特定日期下方返回0个点。

此代码符合Swift 2.3标准。