我用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;
答案 0 :(得分:1)
你不能这样做,这是tableview的正常行为,但你应该提高这些函数的性能,例如,如果从远程源加载图像,请考虑使用延迟加载技术
答案 1 :(得分:1)
你无法停止调用这些方法。如果您为它们发布代码,我们可以帮助您优化它们。
UITableViews缓慢的第一个原因是没有重复使用您的单元格。你在重用你的细胞吗?