如何重用uitableviewcell ??

时间:2011-04-29 09:11:41

标签: iphone objective-c

每次滚动细胞重新加载时都不应该被触发。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

是的,你是对的。我将详细阐述Steven在Apple文档中的帖子。

对于不重新加载的单元格,请先查看此方法:

TimeZoneCell *timeZoneCell = (TimeZoneCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

它说“给我代表表格单元格的现有视图”。这是一个很好的节省,因为如果用户快速向上或向下滚动,创建视图可能非常昂贵。

当然,如果首先没有创建单元格,则无法重复使用单元格。所以,你需要处理那个场景。这就是代码的来源:

if (timeZoneCell == nil) {
    timeZoneCell = [[[TimeZoneCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    timeZoneCell.frame = CGRectMake(0.0, 0.0, 320.0, ROW_HEIGHT);
}

它说,“细胞是否为零?”,即我们还没有创建一个表格单元格?然后它继续创建一个。随后将重新使用该单元格。

细胞的实际内容会发生变化,例如标签或其他内容。但是,您将继续重复使用现有对象。