我想在JTCalender
中设置日期限制。截至目前,它显示的日期超过去年和比今年提前一年多。我想设定限制,它应该只显示过去6个月的日期&未来6个月。我使用的是语言迅速。请建议如何解决此问题?
编辑:我也在我的应用程序中使用以下代码。
func calendarDidLoadNextPage(_ calendar: JTCalendarManager!) {
let formatter = DateFormatter()
formatter.dateFormat = "MMMM yyyy"
print("load next date \(calendar.date())")
label_month.text = formatter.string(from: calendar.date()).uppercased()
filterDate(cal_date: calendar.date())
}
func calendarDidLoadPreviousPage(_ calendar: JTCalendarManager!) {
let formatter = DateFormatter()
formatter.dateFormat = "MMMM yyyy"
print("loading previous date is \(self.dateFormatter().string(from: calendar.date()))")
label_month.text = formatter.string(from: calendar.date()).uppercased()
filterDate(cal_date: calendar.date())
}
答案 0 :(得分:3)
您可以根据自己的要求创建最大和最低日期,并使用JTCalendar的委托方法来限制日历日期。
在界面
中 NSDate *_todayDate;
NSDate *_minDate;
NSDate *_maxDate;
@property (strong, nonatomic) JTCalendarManager *calendarManager;
在实施部分,您可以执行以下代码。
_calendarManager = [JTCalendarManager new];
_calendarManager.delegate = self;
_todayDate = [NSDate date];
_minDate = [_calendarManager.dateHelper addToDate:_todayDate months:-6];
_maxDate = [_calendarManager.dateHelper addToDate:_todayDate months:6];
并且委托方法可以限制日历的日期
// Used to limit the date for the calendar, optional
- (BOOL)calendar:(JTCalendarManager *)calendar canDisplayPageWithDate:(NSDate *)date
{
return [_calendarManager.dateHelper date:date isEqualOrAfter:_minDate andEqualOrBefore:_maxDate];
}
问题在于您的委托方法中的条件。
func calendar(_ calendar: JTCalendarManager!, canDisplayPageWith date: Date!) -> Bool {
return (calendarManager?.dateHelper.date(minDate, isEqualOrAfter: maxDate))!
}
您正在通过 minDate 检查 isEqualorAfter 到 maxDate 。这将是真实的。