如何以编程方式选择日期并在 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 为日期显示 2 个不同颜色的点?