Как установить лимит даты в JTCalender?

Я хочу установить лимит даты в 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())
  }

1 ответ

Решение

Вы можете создать Max и Min Date согласно вашему требованию и использовать метод делегата 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. что никогда не будет правдой.

Другие вопросы по тегам