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

发布于 11-26 09:31 字数 304 浏览 1 评论 0原文

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

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

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

I would like to implement some code, which changes footer text in one section of the tableView (in viewDidAppear or viewWillAppear method). But how can I do it?

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

doesn't fit my requirements (It changes only once, during load of the tableView, but I need to change the footer's text after text in tableView cell is changed.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

﹏半生如梦愿梦如真2024-12-03 09:31:00
    -(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];
}
    -(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];
}
叫思念不要吵2024-12-03 09:31:00
  1. 实现viewForFooterInSection并在其中添加您的textField。还要将该 textField 设置为属性。

  2. 完成对 tableViewCell 的编辑后,实现 textFieldDidEndEditing 方法,并为 footerView 的 textField 分配必要的值。

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

编辑:

如果您想在编辑UITableViewCell后更改页脚部分的标题,

  1. 设置一个全局变量或使用NSUserDefaults来指示tableViewCell< /code> 已被编辑。

  2. 编辑后立即

    self.tableView reloadData

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

  1. Implement viewForFooterInSection and add your textField there. Also make that textField a property.

  2. When you have finished editing you tableViewCells, implement the textFieldDidEndEditing method and assign necessary value to the textField of your footerView.

  3. Once your textField is set, use [tableView reloadData] to implement the viewForFooterInSection again and it should work now.

Edit:

If you want to change the title of the Footer section after editing the UITableViewCell,

  1. Set a global variable or use NSUserDefaults to indicate that tableViewCell has been edited.

  2. self.tableView reloadData right after edit.

  3. In the method titleForFooterInSection check for that variable (this would mean that tableView has been edited) and set the title accordingly.

像你2024-12-03 09:31:00
- (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;
}
- (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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文