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

时间:2012-05-06 02:05:25

标签: iphone uitableview xcode4.2

我正在尝试更改UITableViewController中标题的背景颜色,它实际上有自己的* .h / m文件。我的.m文件,我按照几个stackoverflow答案的建议粘贴了以下代码:

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

但结果如下:

enter image description here

我希望蓝色标题为红色。我不明白为什么标题和第一个单元格之间有一个红条。

其他详细信息 如果这个评论很有用:我是xcode 4.2的新手。我做的是去故事板,拖动导航控制器,拖动表格视图。转到左侧资源管理器bard并添加一个名为MyUITableViewController的新文件,该文件扩展了UITableviewController。将我的函数粘贴到MyUITabelViewController.m文件中。然后我实现了heightforheaderinsection函数来返回一个CGfloat值(之后做的所有事情都增加了蓝色标题和第一个单元格之间的空间)。回到故事板,左键单击我的tableviewcontroller并确保它指向我的MyUITableViewController类。我错过了哪些步骤?

3 个答案:

答案 0 :(得分:3)

Apple的UITableViewDelegate类引用,方法- tableView:viewForHeaderInSection:

  

只有在实现tableView:heightForHeaderInSection:时,此方法才能正常工作。

您是否实施了该方法?

编辑:阅读完您的评论后,您知道自己正在使用故事板,您可以轻松地为整个表创建自定义背景:

1)在故事板上创建一个TableViewController

2)拖动UIView:

UIView

3)将UIView放入表格视图的标题中,此处:

Dropping view into tableView header

4)你现在有一个关于标题的视图,你可以调整大小,改变颜色,添加,例如,UILabel ......:

TableView with header header with label

答案 1 :(得分:0)

使用表视图委托方法自定义表头。我在这里展示一些代码使用它......

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

    UIView *headerView = [[UIView alloc] init];
    UIImageView *tempimage = [[UIImageView alloc]initWithFrame:CGRectMake(10, 5, 300,34)];// you can also use image view to show your required color.
    tempimage.image = [UIImage imageNamed:@"yourimage.png"];
    [headerView addSubview:tempimage];
    [headerView addSubview:headername];
    return  headerView;

  }

希望,这会对你有帮助..

答案 2 :(得分:-1)

显示的蓝色标题是导航控制器标题。