Cara lain untuk melakukan ini adalah menanggapi UITableViewDelegate
metode 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 heightForHeaderInSection
perubahan ketinggian header Anda dicatat dalam tata letak tampilan tabel. (Yaitu, jika Anda memutuskan untuk mengubah tinggi header dalam willDisplayHeaderView
metode ini .)
Anda kemudian dapat menanggapi titleForHeaderInSection
metode 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
}