如何使用新数据刷新UItableViewcell

时间:2014-10-21 11:41:17

标签: ios objective-c iphone uitableview

我们正在开发一个应用程序,我们必须使用Custom UItableViewcell来显示数据。在UItableViewCell中显示数据时,如果我们在U​​ItableViewCell中有任何内容(以前UItableViewCell已经存在内容或与某些数据绑定),则需要删除并绑定新数据,否则数据需要绑定到tableview。以下是我们尝试过的代码。

   if (cell.thumbnailImageView.image==nil) {             
         cell.thumbnailImageView.image = [imagearray objectAtIndex:indexPath.row];
         // cell.pricelabel.text = [pricearray objectAtIndex:indexPath.row];
         cell.DealDecLabel.text=[DealDecarray objectAtIndex:indexPath.row];

         cell.pricelabel.text = [NSString stringWithFormat:@"%@",[pricearray objectAtIndex:indexPath.row]];
     }
     else
     {
         cell.thumbnailImageView.image=nil;
         cell.DealDecLabel.text=nil;
         cell.pricelabel.text=nil;

         cell.thumbnailImageView.image = [imagearray objectAtIndex:indexPath.row];
         // cell.pricelabel.text = [pricearray objectAtIndex:indexPath.row];
         cell.DealDecLabel.text=[DealDecarray objectAtIndex:indexPath.row];

         cell.pricelabel.text = [NSString stringWithFormat:@"%@",[pricearray objectAtIndex:indexPath.row]];
     }

任何提供解决方案或代码的人都非常感激。

4 个答案:

答案 0 :(得分:2)

此代码在cellForRowAtIndexPath对吗? 如果它不是必须的,但假设它是

    [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
                          withRowAnimation:UITableViewRowAnimationNone];

将重新加载tableView

中的特定单元格
    [self.tableView reloadData];

会重新加载整件事

你实际上不需要每次都把图像弄清楚......你可以简单地做..

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    MYCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (!cell)
        cell = [[MYCustomTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

    cell.thumbnailImageView.image = [imagearray objectAtIndex:indexPath.row];
    cell.DealDecLabel.text=[DealDecarray objectAtIndex:indexPath.row];
    cell.pricelabel.text = [NSString stringWithFormat:@"%@",[pricearray objectAtIndex:indexPath.row]];


    return cell;

}

潜在地看一组字典而不是3个独立的数组..

并考虑cell.imageViewcell.textLabelcell.detailTextLabelUITableViewCell子类中提供,我可能会将其编辑为两个标签并将其删除因为它们是不必要的。 detailTextLabel需要将UITableViewCellStyleDefault更改为UITableViewCellStyleSubtitle

答案 1 :(得分:1)

如果您从Web服务获取数据,请添加以下代码。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSLog(@"Did Finished loading....");
    // down here reload your tableview
    [self.tableView reloadData];
}

答案 2 :(得分:0)

每当您将新数据添加到数组中时,即在DealDecarray中,只需调用

即可
[self.tableView reloadData];

它适用于你。

答案 3 :(得分:0)

使用新数据更改uitableview的数据源,然后重新加载表。

[table reloadData];