自定义UITableViewCell在滚动时更改indexPath?

时间:2010-04-22 02:10:07

标签: iphone uitableview skip

我有一个我在Interface Builder中创建的自定义UITableViewCell。我成功地将单元格出列,但是当我滚动时,单元格似乎开始调用不同的indexPath。在此示例中,我将当前的indexPath.section和indexPath.row提供给customCellLabel。当我上下滚动桌子时,一些细胞会发生变化。数字可以遍布整个地方,但细胞不会在视觉上跳过。

如果我注释掉if(cell == nil),那么问题就会消失。

如果我使用标准单元格,问题就会消失。

为什么会发生这种情况?

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"CalendarEventCell"];
    if (cell == nil) {
        NSLog(@"Creating New Cell !!!!!");
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CalendarEventCell" owner:self options:nil];
        cell = (UITableViewCell *)[nib objectAtIndex:0];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }


   // Set up the cell...
  [customCellLabel setText:[NSString stringWithFormat:@"%d - %d",indexPath.section, indexPath.row]];


    return cell;
}

1 个答案:

答案 0 :(得分:2)

在if(cell == nil)条件下创建单元格时,是否将reuseIdentifier作为“CalendarEventCell”分配给单元格?我可以看到您的笔尖名称是CalendarEventCell,但我想您还需要设置

cell.reuseIdentifier = @"CalendarEventCell";

如果没有,那么我不确定它是否能够释放正确的细胞。另外,不确定customCellLabel所指的是什么。