自動計算tableView的高度

tableView自動計算行高:(須要設置兩個屬性:rowHeight和estimatedRowHeightspa

   注意: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;  // 預估行高
相關文章
相關標籤/搜索