tableView建立方法調用的研究

當兩個section的cell數量都爲5的時候,方法的調用順序:spa


-[ViewController numberOfSectionsInTableView:]
-[ViewController tableView:titleForHeaderInSection:]
-[ViewController tableView:titleForFooterInSection:]
-[ViewController tableView:numberOfRowsInSection:], section = 1
-[ViewController tableView:titleForHeaderInSection:]
-[ViewController tableView:titleForFooterInSection:]
-[ViewController tableView:numberOfRowsInSection:], section = 0it

-[ViewController numberOfSectionsInTableView:]
-[ViewController tableView:titleForHeaderInSection:]
-[ViewController tableView:titleForFooterInSection:]
-[ViewController tableView:numberOfRowsInSection:], section = 1
-[ViewController tableView:titleForHeaderInSection:]
-[ViewController tableView:titleForFooterInSection:]
-[ViewController tableView:numberOfRowsInSection:], section = 0io

-[ViewController numberOfSectionsInTableView:]
-[ViewController tableView:titleForHeaderInSection:]
-[ViewController tableView:titleForFooterInSection:]
-[ViewController tableView:numberOfRowsInSection:], section = 1
-[ViewController tableView:titleForHeaderInSection:]
-[ViewController tableView:titleForFooterInSection:]
-[ViewController tableView:numberOfRowsInSection:], section = 0table

-[ViewController tableView:cellForRowAtIndexPath:], section = 0, row = 0
-[ViewController tableView:cellForRowAtIndexPath:], section = 0, row = 1
-[ViewController tableView:cellForRowAtIndexPath:], section = 0, row = 2
-[ViewController tableView:cellForRowAtIndexPath:], section = 0, row = 3
-[ViewController tableView:cellForRowAtIndexPath:], section = 0, row = 4
-[ViewController tableView:cellForRowAtIndexPath:], section = 1, row = 0
-[ViewController tableView:cellForRowAtIndexPath:], section = 1, row = 1
-[ViewController tableView:cellForRowAtIndexPath:], section = 1, row = 2
-[ViewController tableView:cellForRowAtIndexPath:], section = 1, row = 3
-[ViewController tableView:cellForRowAtIndexPath:], section = 1, row = 4
-[ViewController tableView:titleForHeaderInSection:]
-[ViewController tableView:titleForFooterInSection:]
-[ViewController tableView:titleForHeaderInSection:]
-[ViewController tableView:titleForFooterInSection:]方法

如下會調用三次tab

返回section的num
{
最後一個section
返回section的header
返回section的footer
返回section的行數
從第一個section開始
返回section的header
返回section的footer
返回section的行數
}co

section的數量  返回section的num{} 返回section的num{}的調用順序 最後調用header、footer的次數
        1 三次 0 一組
        2 三次 一、0 兩組
        3 三次 二、0、1 三組
        4 三次 三、0、一、2 四組
        5 三次 四、0、一、二、3 四組
        6 三次 五、0、一、二、三、4 四組

 

 

 

 

 

 

問題一:爲何到section數量4之後,最後調用header、footer的次數的次數都爲4header

解決:在屏幕大小內繪製tableView,繪製多少內容,調用相應方法(若是一個section只露出一個header和幾個cell,那麼會先調用header,而後調用 tableView:cellForRowAtIndexPath:方法)ab

   在設置的section內容以後,當前模擬器只能顯示三個section(第三個section只有header露出來一點點,建立第一行cell和第二行cell,建立header和footer)

向下滑動,cell出現時,建立屏幕下下行cell(第一行cell出現,建立第三行cell)

  section的倒數第二行cell出現時,不建立

  section的最後一行cell的分界線出現時,建立下一個section的header

  section最後一行cell出現時,先建立下一個section的第一行cell,而後建立section的footer

  footer出現,不建立

     下一個section的header出現時,建立下一個section的第二行cell

      第一行cell出現時,建立第3行cell;

向上滑動,cell出現時,建立上一行cell(第二行cell出現,建立第一行cell)

  第二行cell出現,建立第一行cell

  第一行cell出現,不建立(plain模式,header還在頭部)

  header被拖動,footer將出現時,建立footer

  footer出現,不建立

   header將出現時,建立上一個section的最後一行cell,而後建立header

  最後一行cell出現,建立倒數第二行;

 

問題二: 爲何「返回section的num{}」這一組方法每次都是調用三次?

相關文章
相關標籤/搜索