uiTableView objective-C每个部分中的一个按钮

时间:2012-08-07 06:37:49

标签: objective-c ios uitableview

我有一个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;
}

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

提前致谢!

3 个答案:

答案 0 :(得分:0)

一个UIView必须只有一个超级视图。您必须为每个部分创建footerView。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您正在为每个部分重复使用footerView,部分只需保留一个footerView实例变量,部分只需创建一次即可。每当UITableView要求您显示某个部分的页脚视图并且它返回相同的视图时,该视图就会被移动,因为它无法同时停留在所有这些位置。解决方案是不使用单个视图。

使用NSMutableDictionary来保存NSNumber,并将部分编号作为键,并使用相应的页脚视图作为值。更改代码以使用字典中的部分“槽”而不是单个实例变量。