UITableView节标题重叠自定义headerView?

时间:2016-04-24 11:55:14

标签: ios objective-c uitableview

我试图调整视图大小或添加约束但不起作用。 enter image description here

enter image description here

这是代码不起作用:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section == 0) {
        return 100;
    }
    return 0;
}

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    //self.mainViewTableView.tableHeaderView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 0, 0.1)];
    if (section == 0) {
        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 50, tableView.frame.size.width, 100)];
        //[view setBackgroundColor:[UIColor colorWithRed:240/255.0 green:240/255.0 blue:240/255.0 alpha:1]];
        [view setBackgroundColor:[UIColor redColor]];
        [self.mainViewTableView setTableHeaderView:view];
        return view;
    }
    else{
        return nil;
    }

}

但是当我尝试这个时,它可以找到。(这不是我想要的,我想在故事板中添加标题视图,但不能以编程方式添加它。)

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, view.frame.size.width, 300)];
//[view setBackgroundColor:[UIColor colorWithRed:240/255.0 green:240/255.0 blue:240/255.0 alpha:1]];
[view setBackgroundColor:[UIColor redColor]];
[self.mainViewTableView setTableHeaderView:view];

2 个答案:

答案 0 :(得分:3)

设置您在tableView viewForHeaderInSection

中创建的视图的zPosition

swift版本:

sectionView.layer.zPosition = -1

答案 1 :(得分:0)

tableview中有两种标题:

  • 主tableview标题,显示在顶部;
  • 节标题,显示在每个部分中。

如果你想使用从故事板加载的节头,你应该声明UIView或子类的iboutlet属性,并将其添加到IB中的vc,如下所示:

enter image description here

要在IB中添加tableHeaderView,只需将其放在tableView的顶部:

enter image description here