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; // 預估行高