在[_fetchedResultsController objectAtIndexPath:indexPath]
上花费太多时间,还有其他方法吗? heightForRowAtIndexPath在这一点上花费了太多时间。我不知道这是错误的问题,但请帮助我找到合适的解决方案。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
ThreadInfo *info=[_fetchedResultsController objectAtIndexPath:indexPath];
NSString* objectId = info.threadID;
if (![self.idToCellHeight objectForKey: objectId])
{
CGFloat height = [self calculateHeightForId:info];
[self.idToCellHeight setObject:[NSNumber numberWithFloat:height] forKey: objectId];
}
return [[self.idToCellHeight objectForKey:objectId] floatValue];
}
答案 0 :(得分:0)
你有没有运行仪器?运行Time Profiler。什么是占用时间?找到并消除它。
如果找不到,请在此处发布跟踪以供其他人查看。
答案 1 :(得分:0)
另一种方法是使用自我调整细胞。您不必计算(或缓存)任何行高。
self.tableView.rowHeight = UITableViewAutomaticDimension; self.tableView.estimatedRowHeight = 44.0;
有关详细信息,请参阅smileyborg在answer至在UITableView中使用自动布局进行动态单元格布局的详细演练。可变行高。