0

同様の質問: UITableView の UITableViewStylePlain セクション ヘッダー スタイルを模倣する方法
完全な回答はありません。BarrettJ's は近いですが、完全ではありません。

画像はそれを行うための最も簡単で最も効率的な方法のようですが、正しいサイズ/位置を取得できず、近くにいても最初と2番目のヘッダーが異なって見えます. (テーブルビューの上部が違う?)

テキストは問題ではありません。スペースを埋めて、デフォルトのヘッダーとまったく同じに見えるものが必要なだけです。

4

1 に答える 1

1
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    UIView *sectionHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, tableView.sectionHeaderHeight)];
    sectionHeaderView.backgroundColor = [UIColor colorWithWhite:0 alpha:0];
    sectionHeaderView.userInteractionEnabled = YES;
    sectionHeaderView.tag = section;

    UIImageView *backgroundImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, -1, tableView.bounds.size.width, 23)];
    backgroundImageView.image = [UIImage imageNamed:@"header.png"];

    UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(12, 2, tableView.bounds.size.width-10, 18)];
    headerLabel.backgroundColor = [UIColor clearColor];
    headerLabel.textColor = [UIColor whiteColor];
    headerLabel.shadowColor = [UIColor darkGrayColor];
    headerLabel.shadowOffset = CGSizeMake(0, 1);
    headerLabel.font = [UIFont boldSystemFontOfSize:18];
    headerLabel.text = [self tableView:tableView titleForHeaderInSection:section];

    [sectionHeaderView addSubview:backgroundImageView];
    [sectionHeaderView addSubview:headerLabel];

    return sectionHeaderView;
}

修正しました。誰でもこれを使用/変更できます。

header.png

于 2012-07-03T19:39:04.020 に答える