在另一个问题中,它被告知只重新加载所需的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
答案 0 :(得分:2)
只需在您的表上调用reloadData - 它不会重新加载整个表,它只会重新加载(或者更确切地说应该)可见的单元格。
您的单元格与表格直接相关,而cellForRowAtIndexPath是桥梁 - 系统调用该桥梁来确定如何显示单元格。例如,滚动时会多次调用此方法。
在过去的一种情况下,我调用reloadRowsAtIndexPaths仅重新加载一个(或多个)特定单元格。在那种情况下,我在单元格上有一个按钮,我想在单击一次后禁用该按钮。
答案 1 :(得分:2)
如果您的某些数据发生了变化,您可以致电- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
上的UITableView
重新加载此UITableViewcell
。它将再次调用cellForRowAtIndexPath。