JTcalendar - Как использовать метод (BOOL)haveTaskForDay:(NSDate*)date

Я использую JTCalendar в моем проекте. Я должен показать indicators (round dots) под датами, если событие для этого дня доступно. Ответ от API дает мне array of dictionaries, Словарь имеет ключ "service_date" и значение в строке, как "10/02/2017",

Как я могу использовать метод haveTaskForDay проверить даты обслуживания?

1 ответ

Решение

В делегате JTCalendar:

- (void)calendar:(JTCalendarManager *)calendar prepareDayView:(JTCalendarDayView *)dayView
{

            if([self haveTaskForDay:dayView.date])
            {
                dayView.dotView.hidden = NO;
                dayView.dotView.backgroundColor = [UIColor blackColor];
            }
            else
            {
                dayView.dotView.hidden = YES;
            }
}

и в вашем haveTaskForDay Метод, вы получите параметр даты от вышеупомянутого делегата, затем вы можете проверить, совпадает ли дата с той, что в вашем словаре:

- (BOOL) haveTaskForDay :(NSDate *)date
{
 for (NSDictionary * eventDictionary in yourArray)
        {
            NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
            [formatter setDateFormat:@"dd/MM/yyyy"];
            NSString * calendarDate = [formatter stringFromDate:date];

            NSString * dateString = [eventDictionary objectForKey : @"service_date"];

            if([dateString isEqualToString:calendarDate])
                return 1;
        }

    }
        return 0;
}

Примечание: я не запускал этот код. Вы должны внести исправления, если это необходимо.

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