Я использую CVCalendar в приложении для iPhone и хочу отключить даты, находящиеся за пределами диапазона. Даты в календаре должны быть включены только в том случае, если они будут от 4 до 14 дней в будущем. У меня есть функция с именем disableOutsideDays()
с попытками выполнить это, но она работает только эпизодически, например, когда открывается календарное представление, но не тогда, когда пользователь прокручивается до следующего или предыдущих месяцев.CVCalendar Дата отключения iOS не работает при смене месяцев
func disableOutsideDays() {
let calendar = NSCalendar.currentCalendar()
for weekV in calendarView.contentController.presentedMonthView.weekViews {
for dayView in weekV.dayViews {
if calendar.compareDate(dayView.date.convertedDate()!, toDate: NSDate(), toUnitGranularity: .Day) == .OrderedAscending || calendar.compareDate(dayView.date.convertedDate()!, toDate: calendar.dateByAddingUnit(.Day, value: 14, toDate: NSDate(), options: NSCalendarOptions(rawValue: 0))!, toUnitGranularity: .Day) == .OrderedDescending {
dayView.userInteractionEnabled = false
dayView.dayLabel.textColor = calendarView.appearance.dayLabelWeekdayOutTextColor
}
}
}
}
Я называю это внутри viewDidLoad
, а также didShowNextMonthView
и didShowPreviousMonthView
. Странная часть состоит в том, что прокрутка к следующему месяцу может показывать все дни как включенные (напротив того, что я хочу), но затем прокрутка назад к текущему месяцу и обратно к следующей снова показывает их как отключенные.
вы пытались задать вопрос на GitHub? –