Links

UITableView的加载过程

UITableView有一个UITableViewDelegate对象和UITableViewDataSource对象,我们通过研究这两个对象的方法的调用过程来研究UITableView的加载过程
  • 首次加载和调用reloadData
UITableView的首次加载,其实就是UITableView调用reloadData之后的结果。
  1. 1.
    首先会调用numberOfSectionsInTableView:获取section的数量
  2. 2.
    然后调用tableView:numberOfRowsInSection:获取section中row的数量
  3. 3.
    接着加载cell视图,tableView:cellForRowAtIndexPath:获取cell,tableView:heightForRowAtIndexPath:获取cell的高度。(这里仅加载需要显示的cell)
  4. 4.
    最后加载section的header view和 footer view。先获取高度,tableView: heightForHeaderInSection:,再获取视图,tableView:viewForHeaderInSection:

  • 滑动UITableView
滑动UITableView的过程其实就是将不可见的cell加载出来的过程。因此在这个过程中,仅会与cell和header view ,footer view加载的方法。 tableView:cellForRowAtIndexPath: tableView:heightForRowAtIndexPath: tableView: heightForHeaderInSection: tableView:viewForHeaderInSection:

  • 插入和删除cell