我正在生成一个JSON字符串,我需要解析并显示在页面上。我的JSON字符串输出有关CD内容的信息,如下所示:
[{"song_name":"Song 1","artist":"John","price":"$1"},
{"song_name":"Song 2","artist":"Anna","price":"$2"},
{"song_name":"Song 3","artist":"Ryan","price":"$3"}]
我想以列表格式显示我的viewController中的内容,显示song_name,artist和price。我不想使用tableView来显示这些信息,而只想显示一个列表。我该怎么做呢?我假设我需要使用NSJSONSerialization,但过去只用过tableView。谢谢!
答案 0 :(得分:1)
请按照以下步骤操作:
不过,我建议只使用UITableView。它更简单,更好的方法
答案 1 :(得分:1)
除了其他答案之外,你只能使用一个标签,只需在曲目信息之间用@“\ n”创建NSMutableString(用于动态添加曲目信息),将其传递给label.text并将UILabel的属性numberOfLines设置为0 < / p>
答案 2 :(得分:0)
您确实使用NSJSONSerialization创建了一个字典数组,然后逐个解析此数组并创建每个字典的视图。你可能最好使用一种方法:
-(UIView *) listView: (NSString *)songName andArtist:(NSString *)artist andPrice:(NSString *)price andIndex:(int)viewIndex {
//create your view here and do anything you want
UIView *subView = [[UIView alloc] init] autoRelease];
subView.frame = CGRectMake(0, viewIndex * 70, self.view.frame.width, 70);
//add labels and other stuff
// return the view
return subView;
}
您可以通过设置不同的Y值将它添加到当前视图中,以便它们通过使用前一个方法的viewIndex显示在彼此之下...所以如果您有一个数组,它会是这样的:
for (int i = 0; i < [array count]; i++) {
NSDictionary *dict = [array objectAtIndex:i];
NSString *songName = [dict valueForKey:@"song_name"];
NSString *artist = [dict valueForKey:@"artist"];
NSString *price = [dict valueForKey:@"price"];
UIView *tempView = [self listView:songName andArtist:artist andPrice:price andIndex:i];
[self.view addSubView:tempView];
}
您必须将它全部添加到滚动视图中,否则您将遇到页面上许多行的问题。如果您不知道如何,请使用Google for UIScrollView。
但我建议不要采用这种方法。表格视图是有原因的。它们是为这些东西而制造的。因为它还提供滚动,绘图和刷新。如果可以,请使用它们!