17

概要

次の仕様のテーブルビューを備えたiOSプロジェクトがあります。

  • 静的セル(コンテンツは動的に入力されません)
  • スタイルはグループ化されています

質問

  1. 静的テーブルビューのセクションヘッダーのテキストの色を変更するにはどうすればよいですか?
4

4 に答える 4

31

独自のヘッダービューを作成する必要があります。

テーブルビューデータソース/デリゲート内に実装する

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    NSString *sectionTitle = [self tableView:tableView titleForHeaderInSection:section];
    if (sectionTitle == nil) {
        return nil;
    }

    // Create label with section title
    UILabel *label = [[[UILabel alloc] init] autorelease];
    label.frame = CGRectMake(20, 6, 300, 30);
    label.backgroundColor = [UIColor clearColor];
    label.textColor = [UIColor colorWithHue:(136.0/360.0)  // Slightly bluish green
                                 saturation:1.0
                                 brightness:0.60
                                      alpha:1.0];
    label.shadowColor = [UIColor whiteColor];
    label.shadowOffset = CGSizeMake(0.0, 1.0);
    label.font = [UIFont boldSystemFontOfSize:16];
    label.text = sectionTitle;

    // Create header view and add label as a subview

    // you could also just return the label (instead of making a new view and adding the label as subview. With the view you have more flexibility to make a background color or different paddings
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, SectionHeaderHeight)];
    [view autorelease];
    [view addSubview:label];

    return view;
}
于 2012-04-19T16:53:41.550 に答える
14

これも作ることができます:

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
    [[((UITableViewHeaderFooterView*) view) textLabel] setTextColor:[UIColor whiteColor]];
}

....。

于 2013-06-15T14:07:47.470 に答える
1

ビューと一緒にヘッダーの高さを追加した後にのみ、ヘッダーを表示できました

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    return 110;
}
于 2014-06-30T12:37:45.573 に答える
0

Swift 4.2の場合

override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    if let headerView = view as? UITableViewHeaderFooterView {
        headerView.textLabel?.textColor = UIColor.OMGColors.dimText
    }
}

独自のヘッダービューを作成する必要はありません-静的セルの目的を無効にします。IBのどこかでこれを直接設定できないことに驚いています...

于 2019-03-26T21:43:22.267 に答える