如何在TableView的一个部分中手动设置页脚(iOS)?

时间:2011-07-25 17:32:59

标签: objective-c uitableview footer

我想实现一些代码,它们在tableView的一个部分(viewDidAppearviewWillAppear方法)中更改页脚文本。但是我怎么能这样做呢?

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

不符合我的要求(在加载tableView期间它只更改一次,但我需要在tableView单元格中的文本更改后更改页脚的文本。

3 个答案:

答案 0 :(得分:3)

    -(CGFloat) tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{


        return 120;

    }



    -(NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
        if (section == 0) {
            return @"Things We'll Learn";
        } else {
            return @"Things Already Covered";
        }
    }



- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    [tableView reloadData];
}

答案 1 :(得分:1)

  1. 实施viewForFooterInSection并在那里添加textField。还要将textField设为属性。

  2. 完成tableViewCells的编辑后,实现textFieldDidEndEditing方法并将必要的值分配给footerView的textField。

  3. 设置textField后,使用[tableView reloadData]再次实现viewForFooterInSection,它现在可以正常工作。

  4. 修改

    如果要在编辑UITableViewCell后更改“页脚”部分的标题,

    1. 设置全局变量或使用NSUserDefaults表示已编辑tableViewCell

    2. 编辑后立即
    3. self.tableView reloadData

    4. 在方法titleForFooterInSection中检查该变量(这意味着已经编辑了tableView)并相应地设置标题。

答案 2 :(得分:0)

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    if(section == 1)
    {
        // For Lable
        UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 40)] autorelease];
        tableView.sectionHeaderHeight = view.frame.size.height;
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, view.frame.size.width - 20, 44)];
        label.text = [self tableView:tableView titleForHeaderInSection:section];
        label.font = [UIFont boldSystemFontOfSize:16.0];
        label.shadowOffset = CGSizeMake(0, 1);
        label.backgroundColor = [UIColor clearColor];
        label.textColor = [UIColor whiteColor];
        label.adjustsFontSizeToFitWidth = YES;
        [label setLineBreakMode:NSLineBreakByTruncatingTail];
        [label setNumberOfLines:0];
        label.text = @“Your Text Here…..your Text Here”;

        [view addSubview:label];
        [label release];
        return view;
    }

    return nil;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{  
     if(section == 1)
    {

        return 60.0;
    }

    return 0;
}