0

我用 10 行填充表格视图。当我向上滚动表格时,前 2 或 3 行会冻结一段时间。我只看到最后一行 2 或 3 秒。我意识到滚动表格会调用 cellForRowAtIndexPath 和 willDisplayCell 函数。我使用这些功能。似乎对这些功能的调用减少了响应时间。滚动表格时如何禁用调用这些函数?请注意,我不想禁用滚动。

static NSString *CellIdentifier = @"Cell"; 

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

cell.textLabel.text = [[self.items objectAtIndex:indexPath.row] valueForKey:@"name"]; 

if ([indexPath row] % 2) 
    cell.backgroundColor = [UIColor whiteColor];
else 
    cell.backgroundColor = [UIColor colorWithRed:0/255.0 green:46/255.0 blue:59/255.0 alpha:0.1];

return cell;
4

2 回答 2

1

你不能停止调用这些方法。如果您为它们发布代码,我们可以帮助您优化它们。

UITableViews 速度慢的第一个原因是没有重用你的单元格。你在重复使用你的细胞吗?

于 2012-07-02T18:53:01.690 回答
1

您不能这样做,这是 tableview 的正常行为,但是您应该提高这些功能的性能,例如,如果您确实从远程源加载图像,请考虑使用延迟加载技术

于 2012-07-02T18:51:26.977 回答