如何在UITableView中重新加载单个部分

时间:2012-07-20 14:27:29

标签: iphone uitableview nsindexpath

嘿,我在试图解决这个问题时遇到了麻烦。 UITableView有一个方法[tableView reloadSections:(NSIndexSet *)withRowAnimation:(UITableViewRowAnimation)]现在根据Apple文档,这个方法接受一个NSIndexSet对象并重新加载索引集指定的任何部分。问题是即使我只在一个部分发送到这个方法,它最终重新加载所有部分,我不明白为什么会发生这种情况。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

即使您尝试仅重新加载某个部分,也必须按部分提供填充过程:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"DetailViewCell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                   reuseIdentifier:CellIdentifier] autorelease];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
}

   if (indexPath.section == 0){
      //blablabla
      cell.textLabel = blabla
   }
   else if (indexPath.section == 1){
      ///blablabla
      cell.textLabel = blabla2
   }
return cell;
}

...因为重新加载表(只是一个部分或整个表)将调用上面的方法