0

所以我有这个 Tableview 有几个部分,确切地说是 (3)。我希望有第 2 节和第 3 节的标题,而不是第一节的标题..

这是我所做的:

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

    UIView *tempView;
    tempView = [[UIView alloc]initWithFrame:CGRectMake(0,0,300,20)];
    tempView.backgroundColor=[UIColor grayColor];

    UILabel *tempLabel = [[UILabel alloc]initWithFrame:CGRectMake(10,0,300,20)];
    tempLabel.backgroundColor = [UIColor clearColor];
    tempLabel.shadowColor = [UIColor blackColor];
    tempLabel.shadowOffset = CGSizeMake(0,2);
    tempLabel.textColor = [UIColor whiteColor]; //here you can change the text color of header.
    tempLabel.font = [UIFont fontWithName:@"Helvetica" size:14.0f];


    switch (section)
    {
            break;
        case 1:
        {
            sectionName = NSLocalizedString(@"Information", @"Information");
            tempLabel.text = sectionName;
            [tempView addSubview:tempLabel];
        }
            break;

        case 2:
        {
            sectionName = NSLocalizedString(@"Tools", @"Tools");
            tempLabel.text = sectionName;
            [tempView addSubview:tempLabel];
        }
            break;

    }
    return tempView;
}

我对需要做什么感到困惑......这是正在发生的事情的图片:表视图标题

4

2 回答 2

2

在 section == 0 的情况下,您仍在设置tempView新实例UIView并返回该值,只是没有设置标签的标题。此外,正如您所了解的,您应该tableView:heightForHeaderInSection:为第 0 节返回 0。

于 2013-07-28T21:01:01.300 回答
0

所以当我写这个问题时,我得出了一个结论......但也许它不是更有效?

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    CGFloat headerheight = 20.0;

    switch (section)
    {
        case 0: { headerheight = 0.0; } break;
        case 1: { headerheight = 20.0; } break;
        case 2: { headerheight = 20.0; } break;
    }
    return headerheight;
}

如果有人对我如何不需要实现这个 tableview 委托方法有任何建议,请说出来。我觉得我只是不需要返回指定部分的视图而不是说部分标题为 0。但我目前不完全确定,问题已解决但可能没有正确解决?

这是解决方案结果的图片。

解决方案图片

于 2013-07-28T21:01:46.120 回答