我使用JSON将共享Google日历中的活动发送到我的应用中。在某些日期,有2个或更多活动。如您所见[{3}} - 日期(在{gd $ when}下找到,{startDate}为长格式(2013-04-28T19:00:00.000 + 02:00)。 我需要每个部分都是dd-MM-yy格式的日期。然后cell.textLabel.Text将是Title / $ t,而cell.detailTextLabel.Text将是gd $ when / startTime时的时间(hh:mm)。我只想展示那些等于或等于今天的日期。
我玩过它,以匹配raywenderlich.com上的教程。我的代码现在看起来像这样,但我还没有将它实现到tableviewcontroller
#define kBgQueue dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
#define googleURL [NSURL URLWithString: @"http://www.google.com/calendar/feeds/kao1d80fd2u5kh7268caop11o4%40group.calendar.google.com/public/full?alt=json"]
#import "ViewController.h"
@interface ViewController () {
IBOutlet UILabel* humanReadble;
IBOutlet UILabel* jsonSummary;
}
@end
@implementation ViewController
-(void)viewDidLoad
{
[super viewDidLoad];
dispatch_async(kBgQueue, ^{
NSData* data = [NSData dataWithContentsOfURL:googleURL];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
});
}
- (void)fetchedData:(NSData *)responseData {
//parse out the JSON data
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
NSArray* feed = [json valueForKeyPath:@"feed.entry"];
NSLog(@"feed: %@", feed);
for (int i=0; i<[feed count]; i++) {
NSDictionary* event = [feed objectAtIndex:i];
NSString* eventTitle = [event valueForKeyPath:@"title.$t"];
NSLog(@"Title: %@", eventTitle);
}
}
@end
如果有人可以给出指针 - 特别是关于如何从日期创建部分,我们将非常感激
答案 0 :(得分:0)
我的建议告诉你,当你得到日期的数量时,创建部分的数量,并且在每个部分中,你必须放置每个部分的行数。你将在
宣布 -(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
然后在此之后为每个标题添加视图 -
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
headerView=[[UIView alloc] init];
headerView.tag=section+1000;
headerView.backgroundColor=[UIColor clearColor];
UILabel *labelInHeader=[[UILabel alloc] init];
labelInHeader.backgroundColor=[UIColor clearColor];
labelInHeader.adjustsFontSizeToFitWidth=YES;
labelInHeader.minimumScaleFactor=13.00;
labelInHeader.textColor=[UIColor blackColor];
labelInHeader.textAlignment=NSTextAlignmentCenter;
labelInHeader.font=[UIFont fontWithName:FONTCENTURYGOTHICBOLD size:20.0];
labelInHeader.frame=CGRectMake(30, 0, 229,47);
labelInHeader.lineBreakMode=NSLineBreakByWordWrapping;
labelInHeader.numberOfLines=2;
[headerView addSubview:labelInHeader];
return headerView;
}
希望这有帮助。