设置UITableView节标题的样式

时间:2012-03-04 16:24:22

标签: uitableview ios5 xcode4.2

我正在使用iOS 5并在表格中动态生成单元格(每个3行2个部分)。每个部分都有一个标题,该标题也是使用titleForHeaderInSection调用动态生成的。

我还将图像设置为表格的背景,使得部分标题的默认颜色难以阅读。我找不到通过Storyboard界面或以编程方式更改节标题(或shadow colorfonttext size等)颜色的方法!请帮忙!

5 个答案:

答案 0 :(得分:37)

这也适用于iOS5 +。它适用于tableview中的所有部分页眉和页脚,适合我的需要。

- (void)viewDidLoad
{
    [super viewDidLoad];

    [[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setFont:[UIFont fontWithName:@"MyFont" size:8]];
}

答案 1 :(得分:19)

您可以使用方法tableView:viewForHeaderInSection:

为部分标题创建自己的视图,从而修改字体大小/颜色/等

There's an example of this technique here

答案 2 :(得分:11)

实际上最简单的方法

如果您没有做太多修改,例如只更改字体或颜色:

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
    UITableViewHeaderFooterView *tableViewHeaderFooterView = (UITableViewHeaderFooterView *)view;
    tableViewHeaderFooterView.textLabel.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:12.0f];
    tableViewHeaderFooterView.textLabel.textColor = [UIColor colorWithRed:0.27f green:0.27f blue:0.27f alpha:1.0f];
    tableViewHeaderFooterView.contentView.backgroundColor = [UIColor colorWithRed:0.87f green:0.87f blue:0.87f alpha:1.0f];
}

答案 3 :(得分:7)

UITableViewHeaderFooterView类实现了一个可重用的视图,可以放在表格部分的顶部或底部。您可以使用页眉和页脚显示该部分的其他信息。

可用性:iOS(6.0及更高版本)

示例:

[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setColor:[UIColor whiteColor]];

答案 4 :(得分:0)

获取自定义节标题的最简单方法 - 使用单元格!

非常类似于

所使用的技术
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

您可以创建您提供的单元格原型的实例。如果您的单元格包含标签的插座,您可以在返回之前进行设置:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger) section
{
    SessionTableViewCell *cell;
    cell = [tableView dequeueReusableCellWithIdentifier:@"SessionSectionHeader"];
    if (cell == nil) {
        cell = [[SessionTableViewCell alloc]
               initWithStyle:UITableViewCellStyleDefault
             reuseIdentifier:@"SessionSectionHeader"];
    }
    cell.myLabel.text = myTitles[section];
    return cell;
}

请注意,@“SessionSectionHeader”是我们的单元原型的故事板中的标识符。

HTH!