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;
}
Примечание: я не запускал этот код. Вы должны внести исправления, если это необходимо.