我正在寻找如何在CKCalendar中禁用过去的日期。例如,我想禁用当前日期之前的所有日期。只有今天的日期和未来日期必须是可点击的。
答案 0 :(得分:4)
除了Larme的评论(设置日历:willSelectDate为过去日期返回NO),如果要为这些“禁用日期”配置颜色,可以通过设置委托方法 configureDateItem来实现: forDate:强>
一个例子:
- (void)calendar:(CKCalendarView *)calendar configureDateItem:(CKDateItem *)dateItem forDate:(NSDate *)date {
if([date laterDate:minimumDate] == minimumDate) {
dateItem.textColor = [UIColor grayColor];
}
}
上述代码将所有过去日期的文本颜色设置为灰色。
willSelectDate 委托方法的示例:
- (BOOL)calendar:(CKCalendarView *)calendar willSelectDate:(NSDate *)date {
if ([date laterDate:minimumDate] == minimumDate) {
return NO;
}
return [calendar dateIsInCurrentMonth:date];
}
以上代码禁用所有过去日期的选择。
答案 1 :(得分:1)
只是给出这个条件
calendar.onlyShowCurrentMonth=YES;