UITableView如何管理高度可变的单元格

时间:2013-10-18 10:42:19

标签: ios objective-c uitableview

UITableView如何管理可变高度的单元格?它要求加载每个单元格/行的高度,但进一步说明它是如何“内部”......

  1. 计算每个单元格的y原点。一个接一个地计算不是问题。
  2. 在给定一些任意contentOffset的情况下,确定哪个单元格可能位于矩形中。无论表视图中的行数如何,它都保持其数据结构以执行某些快速计算的内容和方式。
  3. 如何管理行的添加和删除以及更新其数据结构而不会产生太多开销。
  4. 有人可以阐明这一点......谢谢

2 个答案:

答案 0 :(得分:0)

基本上你需要小心使用高度可变的单元格,因为它可能是一个性能问题。您可以为当前不可见的单元格调用heightForRowAtIndexPath方法,在具有大量内容的表格中,这可能是一个非常大的数字。计算原点就像你想象的那样 - 它需要知道所有单元格的高度,它高于计算原点的单元格。

答案 1 :(得分:0)

对于细胞编辑,您需要添加此

- (UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return UITableViewCellEditingStyleDelete;
}

执行删除操作时,它会从cellForRowAtIndexPath方法中使用的数据源数组中删除内容。