Bunu yapmanın başka bir yolu da UITableViewDelegateyönteme yanıt vermektir willDisplayHeaderView. Geçilen görünüm aslında a örneğidir UITableViewHeaderFooterView.
Aşağıdaki örnek yazı tipini değiştirir ve ayrıca başlık metnini hücre içinde dikey ve yatay olarak ortalar. Ayrıca heightForHeaderInSection, tablonuzun yüksekliğinde yapılan değişikliklerin tablo görünümünün düzeninde dikkate alınması için yanıt vermeniz gerektiğini unutmayın . (Yani, bu willDisplayHeaderViewyöntemde başlık yüksekliğini değiştirmeye karar verirseniz .)
Daha sonra titleForHeaderInSectionbu yapılandırılmış üstbilgiyi farklı bölüm başlıklarıyla yeniden kullanma yöntemine yanıt verebilirsiniz .
Objective-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;
}
Hızlı 1.2
(Not: görünüm denetleyiciniz a'nın soyundan geliyorsa UITableViewController, bunun olarak bildirilmesi gerekir 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
Bu kod ayrıca, başlık görünümünüz UITableViewHeaderFooterView dışında bir şeyse uygulamanın çökmemesini sağlar:
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
}