我想实现一个表格视图,它显示特定行的可扩展单元格,所以我创建了我的自定义表格单元格,如果将其 expandContent 设置如下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
NSString *shouldExpand = [self.datasource objectAtIndex:indexPath.row];
if([shouldExpand isEqualToString:@"expand"]){
[cell setExpandContent:@"Expand"];
}
else{
[cell setTitle:@"a line"];
}
return cell;
}
但是,为了告诉 tableview 行高,我需要实现以下代码:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
return [cell cellHeight];
}
问题是 heightForRowAtIndexPath 方法将调用 1000 次 tableView:cellForRowAtIndexPath: 如果我的数据源包含 1000 个数据,并且花费太多时间。
如何解决问题?