tableView自动计算行高:(须要设置两个属性:rowHeight和estimatedRowHeight)spa
注意:code
执行这个方法时不会调用行高方法orm
[tableView dequeueReusableCellWithIdentifier:()]
执行这个方法时会调用行高方法继承
[tableView dequeueReusableCellWithIdentifier:() forIndexPath:()]
——设置了预估行高it
执行顺序:行数—>每一个[cell —> 行高](注:即返回每一个cell—>每一个cell的行高)io
当前显示的行高方法会调用三次(每一个版本的Xcode调用次数可能不一样)table
** 问题:预估行高若是不一样,计算的次数不一样!class
1.使用预估行高,计算出预估的contentSize效率
2.根据预估行高,判断计算次数,顺序计算每一行的行高,更新contentSizequeue
3.若是预估行高过大,超出预估行高范围,顺序计算后续行高,一直到填满屏幕退出,同时更新contentSize
4.使用预估行高,每一个cell显示前须要计算,单个cell的效率是低的,从总体效率是高的
特别注意:预估行高不要太大,也不要过小,尽可能靠近!!!
——没有设置预估行高
执行顺序:行数 —> 行高 —> cell
1.计算全部行的高度
2.再计算显示行的高度
** 问题:为何要调用全部行高的方法?UITableView继承自UIScrollView
表格视图滚动很是流畅—>须要提早计算出contentSize
设置预估行高的两个属性:
特别注意:这两个属性都要设置才能达到效果
self.tableView.rowHeight =UITableViewAutomaticDimension; // 行高
self.tableView.estimatedRowHeight = 20; // 预估行高