当单元格第一次变得可见时,将使用 init 方法。当单元格不是第一次变得可见时,它将从表视图的内存中出列。
UITableViewCell *cell = [searchTable dequeueReusableCellWithIdentifier:identifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];
}
return cell;
假设我已经滚动了整个表格,现在任何单元格都可以出列,因为它们都已经被初始化了。
我当前的单元格具有从 0 到 199 的标识符。我刷新了我的表格视图,现在我有了单元格的新信息。我使用方法reloadData
并通过添加+200
到单元格标识符来为新单元格使用从 200 到 399 的标识符:
NSInteger index = indexPath.row + 200;
NSString *CellIdentifier = [NSString stringWithFormat:@"%d",index];
现在我滚动整个表格,看到从 200 到 399 的单元格。
让我们想象一下我改index
回:
NSInteger index = indexPath.row;
现在有一个问题:标识符从 0 到 199 的旧单元仍然可以出队,不是吗?
如果答案是They CAN be dequeued
我还有一个问题:
当我开始使用标识符从 200 到 399 的单元格时,有没有办法从表视图内存中删除标识符从 0 到 199 的单元格?