IOS - 使用自定义UI TableViewCell作为TableFooter

时间:2014-04-15 12:56:08

标签: ios objective-c uitableview

我已经设置了一个带有各种自定义单元格的UITableViewController - 其中一个是提交按钮 - 我需要在桌面底部出现一次。

该单元格具有以下标识符 -

 UITableViewCell *headerView = [tableView dequeueReusableCellWithIdentifier:@"ButtonTableViewCell"];

有人可以建议我如何在桌子底部使用这个细胞吗?它也需要访问segue。

我考虑过使用

  -(void)tableView:(UITableView *)tableView willDisplayFooterView:(UIView *)view forSection:(NSInteger)section { 

方法,但不确定如何以这种方式应用我的单元格,因为该方法不会返回任何内容?

2 个答案:

答案 0 :(得分:1)

只有在发生此特定事件时才会调用

willDisplayFooterView。在这种情况下,我认为这与你无关。

您可以将视图分配给表格的footerView属性。或者您可以将numberOfRowsInSection计数增加到现在的数量加上1。

然后向cellForRowAtIndexPath方法添加一个条件,以确定它是否是最后一个单元格并使用您的headerView单元格而不是普通的表格单元格。

答案 1 :(得分:1)

使用委托方法:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section;
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;

对于viewForFooterInSection,返回您想要的任何视图(如果您想重用该视图,可以是UITableViewCell,并将一些目标添加到视图按钮)。

只是为了给你一个想法,这是一个例子:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 40)];
    button.backgroundColor = [UIColor redColor];
    [button setTitle:@"Button" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(someMethod:) forControlEvents:UIControlEventTouchUpInside];

    return button;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return 40;
}