在UITableView的分区头部放置UILabel并更新其值

3
我希望我的部分标题能显示行中值的总和。 因此,我实现了以下内容:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

在这里我需要建立一个自定义视图并委派函数来放置一个UILabel。

如果这是一个UITableViewCell,我会先构建单元格(如果不存在),然后更新它,或者如果它已存在,则仅更新它。

我不知道应该使用哪种“模式”来更新我的Section Header。要么UITableView中有一种“正确的方法”,但我似乎找不到“updateSectionHeaderForSection”,只有在更改行的值时才调用。

让我困惑的是UITableView如何处理头部,它是否仅在reloadData/实例化时调用viewForHeadersInSection一次,还是每次滚动时都调用它,即使我将此代码放在viewController中?

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

        UIImageView *shadow = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"topbar.png"]];

}

如何强制节标题更新视图,比如调用updateRowsAtIndexPaths,当我改变它应该显示的值时?

我似乎找不到苹果在UITableView编程指南中对此的看法。

感谢您提前给予的任何帮助。

1个回答

0

最近我也要做类似的事情,我的做法是在 viewForHeaderInSection 中绘制一个自定义视图。这个视图包含了许多不同的组件,并为我想显示总数的标签赋予了一个标记。

detailLabel.tag=100001;

然后,每当我想要更新总数时,我检索相关的视图

UILabel *total = (UILabel*)[self.view viewWithTag:100001];

并将其更新为我想要的值:

total.text = @"1234";

嗨,Liam,谢谢。我找到了在[tableView endUpdates]之后被调用的委托方法之一是tableView:viewForHeaderInSection:。幸运的是,当我需要更新总数时执行的代码被包含在begin/endUpdates中,所以我按照你上面建议的做了 :) - RickiG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接