我在下面给出了一些JSON数据,我想在表格视图中显示它。我已经成功使用静态数据,但现在我想使用动态数据。我怎么能这样做?
答案 0 :(得分:0)
使用JSON Parser非常简单,解析JSON数据并将数据存储在NSMutableArray
中,并将该数组传递给表视图。
希望这可以帮助你..
答案 1 :(得分:0)
您必须使用JSON解析器,它将构建一个数据结构(通常是嵌套的NSArray,NSDictonary,NSNumber和NSString实例),您可以正常操作它们。 See my solution for this.
旁注:如果你不熟悉从非结构化创建结构化数据这样的基本概念,你应该学会熟悉这样的东西而不是已经制作最好的iPhone应用程序了( TM)。强>
答案 2 :(得分:0)
一旦下载并解析了JSON数据,就可以有效地获取静态数据。您可以在显示表视图之前下载并解析JSON数据,然后使用数组或字典指定您希望如何布置表视图。您需要以自己的方式将JSON数据表示为值对象,然后您可以对其进行计数和读取,以便为表视图提供所需的数据。如果您在显示表格视图后将要获取数据,那么一旦获得数据,只需调用-[<tableViewName> reloadData]
答案 3 :(得分:0)
您可以使用背景颜色和文本对齐方式创建标题。
-(UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIView *headerView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 30)] autorelease];
if (section == 0){
[headerView setBackgroundColor:[UIColor redColor]];
UILabel * headerLabel=[[UILabel alloc]initWithFrame:CGRectMake(0, -5, headerView.frame.size.width, headerView.frame.size.height)];
headerLabel.textAlignment = UITextAlignmentCenter;
headerLabel.text =@"Current Schedule";
[headerLabel setFont:[UIFont fontWithName:@"Arial-ItalicMT" size:18]];
headerLabel.backgroundColor = [UIColor clearColor];
[headerView addSubview:headerLabel];
[headerLabel release];
return headerView;
}
}
答案 4 :(得分:0)
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [[[[jsonObject valueForKey:@"companies"] objectAtIndex:0] valueForKey:@"Departments"]count];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [[[[[[jsonObject valueForKey:@"companies"] objectAtIndex:0] valueForKey:@"Departments"] objectAtIndex:0] valueForKey:@"Employees"] count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
label1.text = [[[[[[[jsonObject valueForKey:@"companies"] objectAtIndex:0] valueForKey:@"Departments"]objectAtIndex:section]valueForKey:@"Employees"]objectAtIndex:row]valueForKey:@"name"];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [[[[[jsonObject valueForKey:@"companies"] objectAtIndex:0] valueForKey:@"Departments"]objectAtIndex:section]valueForKey:@"name"];
}