0

我已经用谷歌搜索了如何在 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];


}

我想显示从JSONtapku 日历开始的日期。

但我没有成功。

4

1 回答 1

0

这是方法名称:calendarMonthView:marksFromDate toDate

因此,创建一个包含所有需要标记的NSDate对象的数组,然后为所有这些日期调用此方法(在 for 循环中)。

这是参考:

https://github.com/devinross/tapkulibrary/blob/master/src/TapkuLibrary/TKCalendarMonthView.h

/** 一个数据源,它将对应于特定月份的日历月网格的标记。@param monthView 日历月份网格。@param startDate 日历月网格显示的第一个日期。@param lastDate 日历月网格显示的最后日期。@return 返回与 start 和 last day 参数中指定的天数相对应的 NSNumber 对象数组。每个 NSNumber 变量都会给出一个 BOOL 值,用于在当天显示一个点。*/

  - (NSArray*) calendarMonthView:(TKCalendarMonthView*)monthView marksFromDate:(NSDate*)startDate toDate:(NSDate*)lastDate;
于 2014-12-31T10:00:31.380 回答