如何重新加载UITableViewCell

时间:2011-11-28 14:52:33

标签: objective-c

在另一个问题中,它被告知只重新加载所需的UITableViewCells而不是整个表。

如何做到这一点。我必须说,目前我有点无能为力,因为我的自定义单元格不是“直接”绑定到tableView。我在cellForRowAtIndexPath方法中实例化它们。

//default
        static NSString *CellIdentifier = @"Cell";

        TwoRowCell *cell = (TwoRowCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {

            NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"TwoRowCell" owner:self options:nil];
            cell = (TwoRowCell *)[nib objectAtIndex:0];
        }

        // Configure the cell...

        cell.title.text = [dict objectAtIndex:indexPath.row];
        cell.value.text = @"";

        return cell;

如何访问单元格并仅重新加载单元格。想法:有一些委托方法,在更新单元格时重新加载单元格。目前我重新加载整个表格。

BR, mybecks

2 个答案:

答案 0 :(得分:2)

只需在您的表上调用reloadData - 它不会重新加载整个表,它只会重新加载(或者更确切地说应该)可见的单元格。

您的单元格与表格直接相关,而cellForRowAtIndexPath是桥梁 - 系统调用该桥梁来确定如何显示单元格。例如,滚动时会多次调用此方法。

在过去的一种情况下,我调用reloadRowsAtIndexPaths仅重新加载一个(或多个)特定单元格。在那种情况下,我在单元格上有一个按钮,我想在单击一次后禁用该按钮。

答案 1 :(得分:2)

如果您的某些数据发生了变化,您可以致电- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation上的UITableView重新加载此UITableViewcell。它将再次调用cellForRowAtIndexPath。