自动计算tableView的高度

tableView自动计算行高:(需要设置两个属性:rowHeight和estimatedRowHeight

   注意:

     执行这个方法时不会调用行高方法

   [tableView dequeueReusableCellWithIdentifier:()]

      执行这个方法时会调用行高方法

    [tableView dequeueReusableCellWithIdentifier:() forIndexPath:()]

  ——设置了预估行高

       执行顺序:行数>每个[cell > 行高](注:即返回每个cell>每个cell的行高)

  • 当前显示的行高方法会调用三次(每个版本的Xcode调用次数可能不同)

  ** 问题:预估行高如果不同,计算的次数不同!

  •   1.使用预估行高,计算出预估的contentSize

  •   2.根据预估行高,判断计算次数,顺序计算每一行的行高,更新contentSize

  •   3.如果预估行高过大,超出预估行高范围,顺序计算后续行高,一直到填满屏幕退出,同时更新contentSize

  •   4.使用预估行高,每个cell显示前需要计算,单个cell的效率是低的,从整体效率是高的 

  • 特别注意:预估行高不要太大,也不要太小,尽量靠近!!!

   ——没有设置预估行高

      执行顺序:行数 > 行高 > cell

  •     1.计算所有行的高度

  •     2.再计算显示行的高度

    ** 问题:为什么要调用所有行高的方法?UITableView继承自UIScrollView

                  表格视图滚动非常流畅>需要提前计算出contentSize

设置预估行高的两个属性:

特别注意:这两个属性都要设置才能达到效果

  self.tableView.rowHeight =UITableViewAutomaticDimension;  // 行高
  self.tableView.estimatedRowHeight = 20;  // 预估行高


你可能感兴趣的:(tableview,行高,cell的高度,自动计算行高,预估行高)