我如何生成多个tableView标题标题?

时间:2014-02-05 17:04:07

标签: objective-c

我有一个包含3个部分的自定义单元格(Sales Rep,Prize,Signed) (见下图)

我希望在我的tableView标题上有三个标题,但我只知道如何使用内置方法添加一个标题。有人能帮助我吗?

enter image description here

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return @"My Title";
{

2 个答案:

答案 0 :(得分:1)

您需要创建自己的视图以显示为部分标题,而不是让操作系统根据您想要的文本为您创建一个。这允许您完全自定义您希望包含在节标题中的内容。

您可以通过在委托方法中返回视图来执行此操作:

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

如果您希望每行拆分节标题,那么您需要有多个节。每个部分都有1个部分标题,因此如果你想要3个标题,那么你需要有3个部分。您可以通过表格告诉您所需的部分数量:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

然后在提供节索引整数的委托方法中,使用它来区分节。如果他们提供索引路径,您可以通过indexPath.section

获取部分编号

答案 1 :(得分:0)

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
  UIView *view = nil;
  UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 40)];
  CGFloat x=0;
  for (int i = 0;i<[list count];i++)
  {
    id val=[list objectAtIndex:i];
    CGFloat val1=[val floatValue];
header.backgroundColor = [UIColor grayColor];

    UILabel *newLabel = [[UILabel alloc] initWithFrame:CGRectMake(x, 0,107,40)];

    newLabel.text=[NSString stringWithFormat:@"%@",list[i]];

    newLabel.textAlignment = NSTextAlignmentCenter;

    newLabel.backgroundColor = [UIColor greenColor];
    newLabel.layer.borderColor = [UIColor whiteColor].CGColor;
    newLabel.layer.borderWidth = 2;
    [header addSubview:newLabel];

    x=x+newLabel.frame.size.width;


}

return header;
}