1. ホーム
  2. ios

[解決済み] UITableViewのセクションヘッダーのフォントサイズを変更する

2022-05-05 12:40:47

質問

UITableViewのセクションヘッダーのテキストのフォントサイズを変更する最も簡単な方法について、どなたか教えてください。

以下の方法でセクションタイトルを実装しています。

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

そして、この方法を使ってセクションヘッダーの高さをうまく変更する方法を理解しました。

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

このメソッドを使って、UITableViewのセルにデータを入力させています。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

しかし、セクションヘッダーテキストのフォントサイズ、あるいはフォントスタイルを実際に大きくするにはどうしたらよいのか、困っています。

どなたかご教授ください。 ありがとうございます。

解決方法を教えてください。

残念ながら、オーバーライドする必要があるかもしれません。

Objective-Cの場合。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

Swiftでは

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?

こんな感じで試してみてください。

Objective-Cの場合。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

    UILabel *myLabel = [[UILabel alloc] init];
    myLabel.frame = CGRectMake(20, 8, 320, 20);
    myLabel.font = [UIFont boldSystemFontOfSize:18];
    myLabel.text = [self tableView:tableView titleForHeaderInSection:section];

    UIView *headerView = [[UIView alloc] init];
    [headerView addSubview:myLabel];

    return headerView;
}

Swiftでは

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

    let myLabel = UILabel()
    myLabel.frame = CGRect(x: 20, y: 8, width: 320, height: 20)
    myLabel.font = UIFont.boldSystemFont(ofSize: 18)
    myLabel.text = self.tableView(tableView, titleForHeaderInSection: section)

    let headerView = UIView()
    headerView.addSubview(myLabel)

    return headerView
}