文章目录

我们都知道对UITableViewCell的重用,但是却很少人知道,对UITableView的header和footer,也是可以重用的。下面就来看看UITableView的header和footer的重用例子:

  • 首先声明一个全局静态变量:
1
static NSString *headerIdentifier = @"tableViewHeaderIdentifier";
  • 然后在viewDidLoad里面注册UITableViewHeaderFooterView或者其子类:
1
2
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:cellIdentifier];
[self.tableView registerClass:[UITableViewHeaderFooterView class] forHeaderFooterViewReuseIdentifier:headerIdentifier];
  • 接下来就在UITableViewDelegate的方法-tableView:viewForHeaderInSection:或者-tableView:viewForFooterInSection:里面用identifer来或者可重用的header或者footer:
1
2
3
4
5
6
7
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UITableViewHeaderFooterView *headerView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:headerIdentifier];
headerView.textLabel.text = self.yearArray[section];
headerView.contentView.backgroundColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:0.3];
headerView.detailTextLabel.text = @"detailTextLabel";
return headerView;
}

上面的例子用的是类UITableViewHeaderFooterView本身,我们可以通过继承UITableViewHeaderFooterView来达到自定义UITableView的header和footer的目的。

文章目录