如何更改组合typesUITableView的标题的字体颜色?

我有一个分组types的tableview,它看起来很酷。

但是,如果我将表格的背景颜色更改为黑色,则标题变得不清晰。

是否可以更改字体颜色及其样式? 所以我可以使它更具可读性。 我应该实现tableView:viewForHeaderInSection:方法?

要使用默认坐标和TableView中的部分,使用白色字体和阴影:

 -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { NSString *sectionTitle = [self tableView:tableView titleForHeaderInSection:section]; if (sectionTitle == nil) { return nil; } UILabel *label = [[UILabel alloc] init]; label.frame = CGRectMake(20, 8, 320, 20); label.backgroundColor = [UIColor clearColor]; label.textColor = [UIColor whiteColor]; label.shadowColor = [UIColor grayColor]; label.shadowOffset = CGSizeMake(-1.0, 1.0); label.font = [UIFont boldSystemFontOfSize:16]; label.text = sectionTitle; UIView *view = [[UIView alloc] init]; [view addSubview:label]; return view; } 

如果您只需要更改标题上的颜色或字体,请使用tableView: willDisplayHeaderView: forSection: 这是一个快速的例子:

 override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { if let view = view as? UITableViewHeaderFooterView { view.backgroundView?.backgroundColor = ThemeBlue view.textLabel.backgroundColor = UIColor.clearColor() view.textLabel.textColor = UIColor.whiteColor() } } 

是的…现在效果很好!

我创build了tableView:viewForHeaderInSection:方法并创build了一个UIView

 UIView *customTitleView = [ [UIView alloc] initWithFrame:CGRectMake(10, 0, 300, 44)]; 

然后,我创build了一个UILabel&设置文本值和颜色的标签。 然后我将标签添加到视图

 UILabel *titleLabel = [ [UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 44)]; titleLabel.text = @"<Title string here>"; titleLabel.textColor = [UIColor whiteColor]; titleLabel.backgroundColor = [UIColor clearColor]; [customTitleView addSubview:titleLabel]; 

所以我的tableView:viewForHeaderInSection:方法看起来像…

 -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { UIView *customTitleView = [ [UIView alloc] initWithFrame:CGRectMake(10, 0, 300, 44)]; UILabel *titleLabel = [ [UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 44)]; titleLabel.text = @"<Title string here>"; titleLabel.textColor = [UIColor whiteColor]; titleLabel.backgroundColor = [UIColor clearColor]; [customTitleView addSubview:titleLabel]; return customTitleView; } 

我们应该添加tableView:heightForHeaderInSection:方法为标题提供一些空间。

 -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return 44; } 

从苹果文件

表格视图对节标题标题使用固定的字体样式。 如果您需要不同的字体样式,请在委托方法tableView:viewForHeaderInSection:返回自定义视图(例如,UILabel对象)。

所以使用下面的方法,并返回您的自定义视图(UILabel)与您select的字体。

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

从苹果文档阅读

 if ([UIDevice currentDevice].systemVersion.floatValue > 7.0) { [[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setTextColor:[UIColor whiteColor]]; }