我在我的项目中使用了FSCalendar(https://github.com/WenchaoD/FSCalendar)。如果用户单击重复按钮,事件每天都会重复。我想在我的应用程序中的日历上显示它。我该怎么做呢?
发布于 2017-07-17 06:06:27
如果你想选择日期,那么下面的方法会很有帮助,其中日历是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
}
}
希望,这个答案对你有帮助。
发布于 2017-01-23 10:48:10
对于剩余的应用程序,您需要做或使用以下事情。
1. 1.Realm或Core Data -用于数据持久性。
2.本地通知-通知用户发生了某些事件。您需要使用具有一个属性fireDate属性的UILocalNotification。
发布于 2017-07-15 03:12:27
我不知道您是如何持久化该信息(预定日期)的,我可以告诉您的是,您可以使用以下委托轻松地添加一个点(或者更多,如果您愿意,只需更改数字):
`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
将它们转换为月-日格式的字符串,这样比较在所有月份都是相等的。如果为true,则返回1(这表示1点,如果您愿意,可以将其更改为更多点),否则返回比指定日期低0点。
此代码符合Swift 2.3。
https://stackoverflow.com/questions/41803767
复制