1

新的 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 标题落后

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

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

1 回答 1

2

您必须使用以下方法来更改您的 headerview :

- (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;
} 
于 2013-10-01T03:14:16.740 回答