我要做的是解析XML并使元素填充表视图。 XML解析很好并在控制台中打印,但无法在表视图中显示。这是我填充单元格的代码:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if(cell == nil){
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Cell"];
NSMutableDictionary *news = (NSMutableDictionary *)[feeds objectAtIndex:indexPath.row];
[cell.textLabel setText:[news objectForKey:@"title"]];
[cell.detailTextLabel setText:[news objectForKey:@"link"]];
[cell.detailTextLabel setNumberOfLines:2];
}
return cell;
}
答案 0 :(得分:3)
我得到它显示。似乎我忘了在viewDidLoad方法中设置数据源...谢谢大家的帮助。
答案 1 :(得分:1)
您只是在创建新文本标签时向文本标签添加数据。在if语句之后将数据添加到视图中。
UITableView会在可能的情况下重复使用单元格。如果是这样,您将从dequeueReusableCellWithIdentifier:
获得现有单元格。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Cell"];
}
NSMutableDictionary *news = (NSMutableDictionary*) [feeds objectAtIndex:indexPath.row];
cell.textLabel.text = [news objectForKey:@"title"];
cell.detailTextLabel.text = [news objectForKey:@"link"];
cell.detailTextLabel.numberOfLines = 2;
return cell;
}
答案 2 :(得分:1)
填写数据创建或重新使用单元格后。它现在可以正常工作,使用下面的代码。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell";
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if(cell == nil){
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
NSMutableDictionary *news = (NSMutableDictionary *)[feeds objectAtIndex:indexPath.row];
[cell.textLabel setText:[news objectForKey:@"title"]];
[cell.detailTextLabel setText:[news objectForKey:@"link"]];
[cell.detailTextLabel setNumberOfLines:2];
return cell;
}