วิธีการที่จะทำเช่นนี้อีกก็จะไปตอบสนองต่อวิธีการUITableViewDelegate
มุมมองผ่านเป็นจริงตัวอย่างของwillDisplayHeaderView
UITableViewHeaderFooterView
ตัวอย่างด้านล่างเปลี่ยนแบบอักษรและจัดกึ่งกลางข้อความชื่อเรื่องในแนวตั้งและแนวนอนภายในเซลล์ โปรดทราบว่าคุณควรตอบกลับด้วยว่าheightForHeaderInSection
มีการเปลี่ยนแปลงความสูงส่วนหัวของคุณหรือไม่ในรูปแบบของมุมมองตาราง (นั่นคือถ้าคุณตัดสินใจที่จะเปลี่ยนความสูงส่วนหัวในwillDisplayHeaderView
วิธีนี้)
จากนั้นคุณสามารถตอบกลับtitleForHeaderInSection
วิธีการที่จะใช้ส่วนหัวที่กำหนดค่านี้ใหม่ด้วยชื่อส่วนต่าง ๆ
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;
}
สวิฟท์ 1.2
(หมายเหตุ: หากตัวควบคุมมุมมองของคุณเป็นผู้สืบทอดของ a สิ่งUITableViewController
นี้จะต้องประกาศเป็น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
รหัสนี้ยังช่วยให้มั่นใจได้ว่าแอปจะไม่พังถ้ามุมมองส่วนหัวของคุณเป็นอย่างอื่นที่ไม่ใช่ 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
}