在TableView的开头设置标题的位置

时间:2017-02-25 09:33:22

标签: ios objective-c uitableview

我必须在表View的开头设置headerView。 它似乎是固定的,请帮助。

    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
    UIView *headerView = [[[UIView alloc] initWithFrame:CGRectMake(0,0,tableView.frame.size.width,40)] autorelease];
    headerView.backgroundColor = [Utility consumerLightColor];
    UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(5, 0, 250, headerView.frame.size.height)];
    headerLabel.text = @"Upcoming Appointments";
    headerLabel.textAlignment = NSTextAlignmentLeft;
    headerLabel.textColor = [UIColor whiteColor];
    if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
        headerLabel.font = [UIFont fontWithName:@"bauhaus md bt" size:15.0f];
    }
    else{
        headerLabel.font = [UIFont fontWithName:@"bauhaus md bt" size:16.0f];
    }

    // // NSLog(@"title --> %@",[locationArray objectAtIndex:i]);

    headerLabel.backgroundColor = [UIColor clearColor];
    [headerView addSubview:headerLabel];
    [headerLabel release];



    return headerView;

}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    if (tableView == appointmentListtableView) {
        CGFloat changeheight = 40.00;
        return changeheight;
    }
    else{
        return 0.0f;
    }

}

enter image description here

enter image description here

我想要的只是在表格View的开头设置标题视图(即将到来的约会)的位置,它不应该被修复。

2 个答案:

答案 0 :(得分:1)

也许你需要删除表头,而不是段头? 为此,您需要设置:

tableView.tableHeaderView = nil

答案 1 :(得分:0)

请始终牢记,

如果你想将静态标题设置为表格视图,那么它的好处&将其设置为a,

的最佳做法
yourTableView.tableHeader = yourHeaderView;

如果您的标题是动态的,您不知道天气要设置多少部分,那么请使用方法,

viewForHeaderInSection:tableView

这并不意味着你一次只能使用一个,你也可以一次使用,

现在谈到你的情况,我认为你在 tableViewHader 中做错了什么,如果你不再需要,将它设置为 nil

但我很好奇有一件事,即使你已经设置了tableViewHeader,为什么它仍然显示上面和下面?您的第二个标题的下方,您正在设置tableViewHeadersectionFooter或显示UITableViewCell