UITableView方法的执行顺序

1.它会调用代理方法确定有几行

[TableViewController numberOfSectionsInTableView:]

2.确定每行的表头高和表尾高(如果设定了HeardView和FooterView)

[TableViewController tableView:heightForHeaderInSection:]
[TableViewController tableView:heightForFooterInSection:]

3.确定每行有多少的cell

[TableViewController tableView:numberOfRowsInSection:]

4.然后确定每行cell的高度

[TableViewController tableView:heightForRowAtIndexPath:]
-------------如果设置多行及重复执行以上方法-----------

5.以上信息确定完毕后及调用代理方法去获取cell

[TableViewController tableView:cellForRowAtIndexPath:]

6.返回cell的高度

[TableViewController tableView:heightForRowAtIndexPath:]

7.cell将要显示到屏幕上

[TableViewController tableView:willDisplayCell:forRowAtIndexPath:]

8.cell超出屏幕进行服用时及会调用两次

[TableViewController tableView:heightForRowAtIndexPath:]

然后在进行调用 5 . 6. 7 方法

-[TableController tableView:heightForRowAtIndexPath:]  0
-[TableController tableView:heightForRowAtIndexPath:]  0
-[TableController tableView:cellForRowAtIndexPath:]  0
-[TableController tableView:heightForRowAtIndexPath:]  0
-[TableController tableView:heightForRowAtIndexPath:]  1
-[TableController tableView:heightForRowAtIndexPath:]  1
-[TableController tableView:cellForRowAtIndexPath:]  1
-[TableController tableView:heightForRowAtIndexPath:]  1
-[TableController tableView:heightForRowAtIndexPath:]  2
-[TableController tableView:heightForRowAtIndexPath:]  2
-[TableController tableView:cellForRowAtIndexPath:]  2
-[TableController tableView:heightForRowAtIndexPath:]  2
-[TableController tableView:heightForRowAtIndexPath:]  3
-[TableController tableView:heightForRowAtIndexPath:]  3
-[TableController tableView:cellForRowAtIndexPath:]  3
-[TableController tableView:heightForRowAtIndexPath:]  3
-[TableController tableView:heightForRowAtIndexPath:]  4
-[TableController tableView:heightForRowAtIndexPath:]  4
-[TableController tableView:cellForRowAtIndexPath:]  4
-[TableController tableView:heightForRowAtIndexPath:]  4
-[TableController tableView:heightForRowAtIndexPath:]  5
-[TableController tableView:heightForRowAtIndexPath:]  5
-[TableController tableView:cellForRowAtIndexPath:]  5
-[TableController tableView:heightForRowAtIndexPath:]  5
-[TableController tableView:heightForRowAtIndexPath:]  6
-[TableController tableView:heightForRowAtIndexPath:]  6
-[TableController tableView:cellForRowAtIndexPath:]  6

问题?调用cell高度的时候会设置 cell的高度吗?
-[TableController tableView:heightForRowAtIndexPath:] 19
-[TableController tableView:heightForRowAtIndexPath:] 19
-- setFrame ---
-[TableController tableView:cellForRowAtIndexPath:] 19
-[TableController tableView:heightForRowAtIndexPath:] 19
-- setFrame ---

调用两次 heightForRowAtIndexPath 在这只cell 的高度 再次创建 cellForRowAtIndexPath

你可能感兴趣的:(UITableView方法的执行顺序)