我在我的项目中使用了 FSCalendar(https://github.com/WenchaoD/FSCalendar )。如果用户单击重复按钮,则事件每天都会重复。我想在我的应用程序中的日历上显示它。我该怎么做?
3 回答
如果你想选择日期,那么下面的方法会很有帮助,其中日历是 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
}
}
希望,这个答案可以帮助你。
我不知道您如何保留该信息(预定日期),我可以告诉您的是,您可以使用以下代表轻松添加一个点(或者更多,如果您愿意,只需更改数字):
`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变量,该变量也必须是 a NSDate
,通过月日NSDateFormatter
格式将它们都转换为字符串,以便所有月份的比较都相等。如果为真,则返回 1(这表示 1 个点,您可以根据需要更改更多),否则返回特定日期以下的 0 个点。
此代码符合 Swift 2.3。
对于剩余应用程序,您需要执行或使用以下操作。
1.Realm 或 Core Data - 用于数据持久性。
2.local notification - 通知用户发生了一些事件。您需要使用具有一个属性fireDate属性的UILocalNotification。