1. 程式人生 > >iOS開發tableView的tableHeaderView和代理中viewForHeaderInSection的區別

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