2

I want to set date limit in JTCalender. As of now it shows dates more than of past year & more than a year ahead of current year. I want to set limit that it should show only dates of past 6 months & future 6 months. I am using swift language. Please suggest how to resolve this issue ?

EDIT: I am using below code in my app also.

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())
  }
4

1 回答 1

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。这永远不会是真的。

于 2016-12-23T05:36:55.563 回答