【发布时间】:2020-02-11 20:23:36
【问题描述】:
请帮帮我!我在我的项目中使用https://github.com/WenchaoD/FSCalendar。我想禁用当前日期之后的某些日期。我只想在当天之后启用 28 个日期。有可能吗?
【问题讨论】:
标签: ios swift date disable fscalendar
请帮帮我!我在我的项目中使用https://github.com/WenchaoD/FSCalendar。我想禁用当前日期之后的某些日期。我只想在当天之后启用 28 个日期。有可能吗?
【问题讨论】:
标签: ios swift date disable fscalendar
是的,您可以设置天数,为此您必须设置 FScalander 的最小和最大日期,为此您必须在视图控制器中实现以下代码。
extension ViewController:FSCalendarDataSource
{
func minimumDate(for calendar: FSCalendar) -> Date {
return Date()
}
func maximumDate(for calendar: FSCalendar) -> Date {
var dateComponents:DateComponents = DateComponents()
dateComponents.day = 28
let currentCalander:Calendar = Calendar.current
return currentCalander.date(byAdding:dateComponents, to: Date())!
}
}
并确保不要忘记在您的视图控制器中连接 FSCalander 的数据源
【讨论】:
我认为您想启用某些日期可选择您可以使用以下委托
extension YourView: FSCalendarDelegate, FSCalendarDataSource {
func calendar(_ calendar: FSCalendar, shouldSelect date: Date, at monthPosition: FSCalendarMonthPosition) -> Bool {
return yourDates.contains(where: { $0.startOfDay == date.startOfDay })
}
}
extension Date {
var startOfDay: Date {
return Calendar.current.startOfDay(for: self)
}
}
【讨论】: