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

Ios UITableView如何管理高度可变的单元格,ios,objective-c,uitableview,Ios,Objective C,Uitableview,UITableView如何管理高度可变的单元格?它要求每个单元/行的负载高度,但更进一步,它如何“内部” 计算每个单元格的y原点。一个接一个的计算不是问题 在给定任意contentOffset的情况下,确定哪个单元格可能位于rect中。无论表视图中的行数是多少,它如何维护其数据结构以执行一些快速计算 它如何管理行的添加和删除,并在没有太多开销的情况下更新其数据结构 有人能解释一下吗。。。谢谢基本上,您需要小心使用高度可变的单元格,因为这可能会导致性能问题。可以为当前不可见的单元格调用height

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

  • 计算每个单元格的y原点。一个接一个的计算不是问题
  • 在给定任意contentOffset的情况下,确定哪个单元格可能位于rect中。无论表视图中的行数是多少,它如何维护其数据结构以执行一些快速计算
  • 它如何管理行的添加和删除,并在没有太多开销的情况下更新其数据结构

  • 有人能解释一下吗。。。谢谢

    基本上,您需要小心使用高度可变的单元格,因为这可能会导致性能问题。可以为当前不可见的单元格调用heightForRowAtIndexPath方法,这些单元格在包含大量内容的表中可能非常多。计算原点的工作原理与您想象的一样-它需要知道所有单元格在计算原点的单元格之上的高度。

    要编辑单元格,您需要添加以下内容

    - (UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        return UITableViewCellEditingStyleDelete;
    }
    
    当您执行删除操作时,它会从数据源数组中删除您在
    cellforrowatinexpath
    方法中使用的内容