UITableView Plain的默认部分标题?

时间:2012-06-15 15:49:30

标签: xcode uitableview header

类似的问题:How to mimic UITableView's UITableViewStylePlain section header style
没有完整的答案。 BarrettJ很近,但并不完全。

图像似乎是最简单,最有效的方法,但我无法获得正确的尺寸/位置,即使在我关闭时,它在第一个和第二个标题中看起来仍然不同。 (表格视图顶部有什么不同之处?)

文字不是问题。我只需要一些东西填充空间,看起来与默认标题完全相同。

1 个答案:

答案 0 :(得分: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