在UITableView中将颜色更改为标题

时间:2012-08-29 16:03:17

标签: objective-c uitableview uiview

我想更改标题中的字体颜色,所以,我正在委托viewForHeaderInSection:

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
     UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 30)];

     UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 30)];

    [headerLabel setBackgroundColor:[UIColor whiteColor]];
    [headerLabel setTextColor:[UIColor blackColor]];
    [headerView addSubview:headerLabel];

    return headerView;
 }

设置了背景颜色,但文字喜欢透明,没有任何内容。

我试图评论backgroundColor,白色消失,但文字没有。

我尝试对所有块进行注释,文本显示为默认颜色。

我的错误在哪里?提前谢谢

我找到了,我错过了:

[headerLabel setText: @"myText"];

似乎:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection: (NSInteger)section
实现viewForHeaderInSection时不会调用

谢谢!

1 个答案:

答案 0 :(得分:0)

希望UITableViewDelegate协议中的这个方法可以帮助您入门:

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{
UIView *headerView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 30)] autorelease];
 if (section == integerRepresentingYourSectionOfInterest)
 [headerView setBackgroundColor:[UIColor redColor]];
  else 
 [headerView setBackgroundColor:[UIColor clearColor]];
  return headerView;
}

将[UIColor redColor]替换为您想要的任何UIColor。您可能还希望调整headerView的尺寸。