0

我正在寻找如何在 CKCalendar 中禁用过去的日期。例如,我想禁用当前日期之前的所有日期。只有今天的日期和未来的日期必须是可点击的。

4

2 回答 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 回答