Eine andere Möglichkeit, dies zu tun, wäre, auf die UITableViewDelegate
Methode zu reagieren willDisplayHeaderView
. Die übergebene Ansicht ist tatsächlich eine Instanz von a UITableViewHeaderFooterView
.
Im folgenden Beispiel wird die Schriftart geändert und der Titeltext wird vertikal und horizontal in der Zelle zentriert. Beachten Sie, dass Sie auch darauf reagieren sollten heightForHeaderInSection
, wenn Änderungen an der Höhe Ihrer Kopfzeile im Layout der Tabellenansicht berücksichtigt werden. (Das heißt, wenn Sie die Kopfhöhe bei dieser willDisplayHeaderView
Methode ändern möchten .)
Sie können dann auf die titleForHeaderInSection
Methode reagieren, um diesen konfigurierten Header mit verschiedenen Abschnittsüberschriften wiederzuverwenden.
Ziel 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
(Hinweis: Wenn Ihr View Controller ein Nachkomme von a ist UITableViewController
, muss dies als deklariert werden 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
Dieser Code stellt auch sicher, dass die App nicht abstürzt, wenn Ihre Header-Ansicht etwas anderes als eine UITableViewHeaderFooterView ist:
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
}