이를 수행하는 또 다른 방법은 UITableViewDelegate
방법 에 응답하는 것 willDisplayHeaderView
입니다. 전달 된 뷰는 실제로의 인스턴스입니다 UITableViewHeaderFooterView
.
아래 예제는 글꼴을 변경하고 셀 내에서 제목 텍스트를 세로 및 가로로 가운데에 맞 춥니 다. heightForHeaderInSection
테이블 뷰의 레이아웃에서 머리글 높이를 변경하도록 응답해야 합니다. (이 willDisplayHeaderView
방법으로 헤더 높이를 변경하기로 결정한 경우 입니다.)
그런 다음 titleForHeaderInSection
다른 섹션 제목으로 구성된이 헤더를 재사용 하기 위해 메소드에 응답 할 수 있습니다.
목표 -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
(참고 : 뷰 컨트롤러가의 자손 인 경우 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
}
스위프트 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
}