我已经开始讨论如何在tapku库中标记日期。根据他们我得到的JSON下面的代码,但它显示标记或整个日历或没有日期。
这是我的JSON
data: [
{
id: "2",
repeat: "0",
allDay: false,
title: "All Day Event",
start: "2014-01-01 00:00:00",
end: "2014-01-01 00:00:00",
rend: ""
},
{
id: "3",
repeat: "0",
allDay: false,
title: "Long Event",
start: "2014-01-07 00:00:00",
end: "2014-01-10 00:00:00",
rend: ""
},
{
id: "4",
repeat: "0",
allDay: false,
title: "Repeating Event",
start: "2014-01-09 16:00:00",
end: "2014-01-09 16:00:00",
rend: ""
},
]
这是我的代码。
-(NSArray*) calendarMonthView:(TKCalendarMonthView*)monthView marksFromDate:( NSDate*)startDate toDate:(NSDate*)lastDate{
NSMutableArray *marks = [NSMutableArray array];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
for (NSDictionary *dict in APPDELEGATE.calenderDataArray) {
NSString *startdate=[[[dict objectForKey:@"start"] componentsSeparatedByString:@" "] objectAtIndex:0];
NSString *enddate=[[[dict objectForKey:@"end"] componentsSeparatedByString:@" "] objectAtIndex:0];
NSArray *CalenderDays=[NSArray arrayWithObjects:
[NSString stringWithFormat:@"%@",startdate], nil];
NSDate *d = startDate;
NSString * dateStart = [dateFormat stringFromDate:startDate];
NSLog(@"datestart==%@",dateStart);
NSLog(@"CalenderDays==%@",CalenderDays);
while(YES){
if ([CalenderDays containsObject:dateStart]) {
[marks addObject:[NSNumber numberWithBool:YES]];
} else {
[marks addObject:[NSNumber numberWithBool:NO]];
}
NSDateComponents *info = [d dateComponentsWithTimeZone:self.monthView.timeZone];
info.day++;
d = [NSDate dateWithDateComponents:info];
if([d compare:lastDate]==NSOrderedDescending) break;
}
}
NSLog(@"MarkArray %@",marks); //marks null value
return [NSArray arrayWithArray:marks];
}
我想显示从JSON
到tapku日历的日期。
但我没有取得成功。
答案 0 :(得分:0)
以下是方法名称: calendarMonthView:marksFromDate toDate
因此,创建一个包含所有 NSDate 对象的数组,这些对象需要标记,然后为所有这些日期调用此方法(在for循环中)。
以下是参考资料:
https://github.com/devinross/tapkulibrary/blob/master/src/TapkuLibrary/TKCalendarMonthView.h
/ **与日历月标记对应的数据源 某个月的网格。 @param monthView日历月 网格。 @param startDate日历月显示的第一个日期 网格。 @param lastDate日历月网格显示的最后一个日期。 @return返回与该数字对应的NSNumber对象数组 在开始和最后一天参数中指定的天数。每个NSNumber 变量将给出将用于显示点的BOOL值 在这一天。 * /
- (NSArray*) calendarMonthView:(TKCalendarMonthView*)monthView marksFromDate:(NSDate*)startDate toDate:(NSDate*)lastDate;