更新放置在UITableViews节标题中的UILabel的值

时间:2010-09-19 18:45:51

标签: iphone cocoa-touch uitableview

我希望我的节标题显示行中值的总和。 因此,我实施了:

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

委托函数并将UILabel放在我构建的自定义视图中。

如果这是一个UITableViewCell,我会构建单元格,如果它不存在,然后更新它,或者它是否存在 - 只更新它。

我不知道用哪个“模式”来更新我的Section Header。 要么在UITableView中构建一个“正确的方法”,但我似乎无法找到“updateSectionHeaderForSection”并且仅在我更改行的值时调用它。

让我感到困惑的是UITableView如何处理标题,它只在viewForHeadersInSection / instantiation上调用reloadData一次,还是一直调用它,即它是否实例化视图如果我将此代码放在viewController中,则反复滚动?:

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

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

}

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

我似乎无法在UITableView编程指南中找到Apples。

提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

我最近必须做类似的事情,我这样做的方法是在viewForHeaderInSection中绘制自定义视图。这个视图包含了许多不同的组件,我希望在标签中显示总标记

detailLabel.tag=100001;

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

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

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

total.text = @"1234";