Outra maneira de fazer isso seria responder ao UITableViewDelegatemétodo willDisplayHeaderView. A visão passada é na verdade uma instância de a UITableViewHeaderFooterView.
O exemplo abaixo altera a fonte e também centraliza o texto do título na vertical e na horizontal na célula. Observe que você também deve responder para heightForHeaderInSectionque as alterações na altura do cabeçalho sejam contabilizadas no layout da exibição da tabela. (Ou seja, se você decidir alterar a altura do cabeçalho neste willDisplayHeaderViewmétodo.)
Você pode responder ao titleForHeaderInSectionmétodo para reutilizar esse cabeçalho configurado com diferentes títulos de seção.
Objetivo-C
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section {
UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
header.textLabel.textColor = [UIColor redColor];
header.textLabel.font = [UIFont boldSystemFontOfSize:18];
CGRect headerFrame = header.frame;
header.textLabel.frame = headerFrame;
header.textLabel.textAlignment = NSTextAlignmentCenter;
}
Swift 1.2
(Nota: se o seu controlador de exibição é descendente de a UITableViewController, isso precisaria ser declarado como override func.)
override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)
{
let header:UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView
header.textLabel.textColor = UIColor.redColor()
header.textLabel.font = UIFont.boldSystemFontOfSize(18)
header.textLabel.frame = header.frame
header.textLabel.textAlignment = NSTextAlignment.Center
}
Swift 3.0
Esse código também garante que o aplicativo não trava se a visualização do cabeçalho for algo diferente de um UITableViewHeaderFooterView:
override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
guard let header = view as? UITableViewHeaderFooterView else { return }
header.textLabel?.textColor = UIColor.red
header.textLabel?.font = UIFont.boldSystemFont(ofSize: 18)
header.textLabel?.frame = header.frame
header.textLabel?.textAlignment = .center
}