我正在使用显示用户联系人的UITableView。对于一些拥有大量联系人的用户(5000+联系人),tableview也有5000多行。uitableview reloaddata方法阻塞uithread
具有〜12k行的democase中的reloadData方法在设备上需要100ms。
这些100毫秒时,作者“的tableView:heightForRowAtIndexPath:”本身就需要30毫秒,但实际上只是:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.row>50)
{
return 47
}
return 62;
}
这是由于这样的事实,这就是所谓的1.2万倍。
无论如何加快这一点?
你确定它的reloadData需要这么长时间,而不是实际重新加载数据源吗? Tableview不会为它重用的所有数据加载单元格。你如何重新加载数据源? – Yan
查看文档中的tableView:estimatedHeightForRowAtIndexPath:方法。为了这个目的,它被添加到api中。 – rdelmar
@Yan是的,我确定,因为我在乐器中检查过它。 –