UITableView滚动

时间:2012-07-02 18:48:10

标签: ios uitableview

我用10行填充表格视图。当我向上滚动表格时,前两行或第三行被冻结了一段时间。我只看到最后一行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;

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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