我正在寻找如何在 CKCalendar 中禁用过去的日期。例如,我想禁用当前日期之前的所有日期。只有今天的日期和未来的日期必须是可点击的。
问问题
1915 次
2 回答
4
除了 Larme 的评论(设置 calendar: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];
}
上面的代码禁用所有过去日期的选择。
于 2014-06-23T05:47:56.320 回答
1
只要给出这个条件
calendar.onlyShowCurrentMonth=YES;
于 2015-07-09T06:34:48.853 回答