Cara lain untuk melakukan ini adalah menanggapi UITableViewDelegatemetode willDisplayHeaderView. Tampilan yang berlalu sebenarnya adalah instance dari a UITableViewHeaderFooterView.
Contoh di bawah ini mengubah font, dan juga menempatkan teks judul di tengah secara vertikal dan horizontal di dalam sel. Perhatikan bahwa Anda juga harus merespons agar heightForHeaderInSectionperubahan ketinggian header Anda dicatat dalam tata letak tampilan tabel. (Yaitu, jika Anda memutuskan untuk mengubah tinggi header dalam willDisplayHeaderViewmetode ini .)
Anda kemudian dapat menanggapi titleForHeaderInSectionmetode untuk menggunakan kembali header yang dikonfigurasi ini dengan judul bagian yang berbeda.
Objektif-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;
}
Cepat 1.2
(Catatan: jika view controller Anda adalah turunan dari a UITableViewController, ini harus dinyatakan sebagai 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
Kode ini juga memastikan bahwa aplikasi tidak macet jika tampilan tajuk Anda adalah sesuatu selain 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
}