每次滚动细胞重新加载时都不应该被触发。
答案 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);
}
它说,“细胞是否为零?”,即我们还没有创建一个表格单元格?然后它继续创建一个。随后将重新使用该单元格。
细胞的实际内容会发生变化,例如标签或其他内容。但是,您将继续重复使用现有对象。