如何在ckcalendar中禁用过去的日期?

时间:2014-06-10 07:08:59

标签: ios iphone xcode calendar-control

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

2 个答案:

答案 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;