0

我有一个 uitableview 并且在我的表中我有不同的部分并且在每个部分中不同的行,我想在每个部分的最后一行添加一个按钮

我使用了sectionFooter,这是我的代码,但我不知道为什么我只在表格的最后一部分有它,而且它也没有出现滚动。

这是我的代码:

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

return 50;
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {

if(footerView == nil) {

    footerView  = [[UIView alloc] init];


    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

  //  [button setBackgroundImage:image forState:UIControlStateNormal];

    //the button should be as big as a table view cell
    [button setFrame:CGRectMake(10, 3, 300, 44)];

    //set title, font size and font color
    [button setTitle:@"Report New Time" forState:UIControlStateNormal];
    [button.titleLabel setFont:[UIFont boldSystemFontOfSize:20]];
    [button setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];

    //set action of the button
    [button addTarget:self action:@selector(removeAction:)
     forControlEvents:UIControlEventTouchUpInside];

    //add the button to the view
    [footerView addSubview:button];
}

//return the view for the footer
return footerView;
}

这里有什么问题,请你帮帮我!

提前致谢!

4

3 回答 3

0

一个 UIView 必须只有一个 superview。您必须为每个部分创建 footerView。

于 2012-08-07T07:05:09.040 回答
0

您需要删除 tableView:viewForFooterInSection: 方法中的 if 语句。这导致只创建一个视图。

于 2012-08-07T07:20:45.503 回答
0

您正在重用footerViewfor each 部分,部分是通过保留一个footerView实例变量,部分是通过创建一次。每次UITableView要求您提供一个部分的页脚视图并且它返回相同的视图时,该视图都会移动,因为它不能同时停留在所有这些地方。解决方案是不使用单个视图。

使用 anNSMutableDictionary保存NSNumbers,以节号为键,适当的页脚视图为值。更改代码以使用字典中该部分的“槽”而不是单个实例变量。

于 2012-08-07T07:28:50.173 回答