有没有办法更改UITableview标头的所有实例的字体颜色

时间:2013-10-01 03:05:01

标签: ios uitableview

新的iOS 7更改了tableview中节标题的默认字体颜色。问题是我的背景图像使文本难以阅读。我知道我可以改变我的背景,但我想改变所有文本视图的颜色。我之前在我的应用委托中更改了uinavigationbar颜色。如果可能的话,我想在tableview中使用类似的东西。我读过这个方法:

NSString *sectionTitle = [self tableView:tableView titleForHeaderInSection:section];

if (sectionTitle == nil) {
    return nil;
}else{
    UILabel *label = [[UILabel alloc] init];
    label.frame = CGRectMake(20, 8, 320, 16);
    label.textColor = [UIColor whiteColor];
    label.text = sectionTitle;

    UIView *view = [[UIView alloc] init];
    [view addSubview:label];

    return view;
}

我的问题是我必须在每个tableviewcontroller的基础上实现它。此外,当我使用它时,我不知道如何防止文本离开页面并且不可读。

任何建议都会很棒。提前谢谢。

编辑:我已经决定为演示添加一些澄清,使用一些建议的代码,这仍然是我的问题与此解决方案。 UITableView Header trails off

编辑:请回答。我发现这也需要为标题创建多行的空间。

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
   if (section == ?) {
       return 60;
   }
   else{
       return 44;
   }
}

1 个答案:

答案 0 :(得分:2)

您必须使用以下方法更改标题视图:

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

UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,yourWidth,YourHeight)] ;
headerView.backgroundColor = [UIColor colorWithRed:0.5058f green:0.6118f blue:0.8078f alpha:1.0f];


tableView.sectionHeaderHeight = headerView.frame.size.height;
tableView.tableHeaderView.clipsToBounds = YES;

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 13,320, 22)] ;
label.text = [self tableView:tableView titleForHeaderInSection:section];
label.font = [UIFont boldSystemFontOfSize:16.0];
label.shadowOffset = CGSizeMake(0, 1);
label.shadowColor = [UIColor grayColor];
label.backgroundColor = [UIColor clearColor];
    // Chnage your title color here
label.textColor = [UIColor whiteColor];
    [label sizeToFit];
    label.numberOfLines = 2 ;

[headerView addSubview:label];
return headerView;
}