更改背景UITableView中节标题的颜色

时间:2013-01-19 11:57:31

标签: iphone uitableview xcode4.5

我有一个UITableView部分和标题,我在titleForHeaderInSection设置如下:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
  return [NSString stringwithFormat :@"Section %d",section];
}

Defaulty它带有灰色背景,文字颜色为白色。如何将其更改为其他颜色。?

通过谷歌浏览并发现设置为viewForHeaderinSection。 但我没有用它来设置标题。所以我不想写它。

如何在titleForHeaderInSection中撰写?

4 个答案:

答案 0 :(得分:2)

在iOS 6及更高版本中

[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setTextColor:[UIColor whiteColor]];
[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setFont:[UIFont systemFontOfSize:18.0f]];
[[UIView appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setBackgroundColor:[UIColor redColor]];

答案 1 :(得分:1)

   - (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;
    }

答案 2 :(得分:1)

titleForHeaderInSection:此UITableView的委托用于仅设置文字。您可以在下面看到它的返回类型NSString

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    // fixed font style. use custom view (UILabel) if you want something different
}

为了实现节标题的自定义视图,您唯一的选择是viewForHeaderInSection委托方法。我可以肯定,您无法使用titleForHeaderInSection设置标题的视图。此外,viewForHeaderInSection的行为与titleForHeaderInSection完全相同您可以看到如下所示:

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    //Customized your view however you want.

    return myCustomizedView;
}

答案 3 :(得分:0)

使用以下代码可能对您有所帮助:)

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *tempView=[[[UIView alloc]initWithFrame:CGRectMake(0,0,300,25)]autorelease];
    tempView.backgroundColor=[UIColor grayColor];
    UILabel *tempLabel=[[UILabel alloc]initWithFrame:CGRectMake(0,0,300,25)];
    tempLabel.backgroundColor=[UIColor clearColor];
    NSString * headerText = [NSString stringWithFormat:@"%d",section];
    tempLabel.text= headerText;
    [tempView addSubview: tempLabel];
    [tempLabel release];
    return tempView;
}

- (float)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 25;
}