iOS开发tableView的tableHeaderView和代理中viewForHeaderInSection的区别

混淆的概念

  • tableView.tableHeaderView 
  • - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

之前在tableView的使用中一直以为以上两种方式创建headerView是一样的,今天才发现tableHeaderView是整个tableView的headerView,代理创建的是每个section的headerView。

补充:

  1. 使用第二种代理也能实现整个tableView的headerView
  2. tableFootererView也是这样的

使用区别

  • tableHeaderView的高度是该视图自己frame定义的高度,只有一个
  • section的headerView高度是通过代理定义的,每个section都有

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 

效果显示

  • 蓝色的是tableHeaderView,深灰色的是代理创建的sectionHeaderView
  • 绿色的是tableFooterView, 黄色的是代理创建的sectionFooterView

猜你喜欢

转载自blog.csdn.net/ljw2017/article/details/84661736
今日推荐