0

我有一个使用情节提要实现的自定义部分标题视图类。在 viewForHeaderInSection 方法中加载视图时,我可以根据需要设置各种标签和视图。

static NSString *CellIdentifier = @"HeaderCell";
HourlyCustomTableSectionHeader* headerCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

NSString *sectionHeaderTitle = [[NSString alloc] init];

if(section==0){
    sectionHeaderTitle = @"TODAY";
headerCell.CustomHeaderTitle.text = sectionHeaderTitle;
}

但是,我想从每次可见新单元格时运行的另一种方法更新其中的一些。

基本上 - 我想设置部分标题的背景颜色以匹配最上面的单元格并随着用户滚动而更新。

我在尝试引用要更新的属性时遇到问题。为简单起见,我首先尝试更新自定义文本标签。

HourlyCustomTableSectionHeader* customSectionHeadObj = [[HourlyCustomTableSectionHeader alloc] init];
customSectionHeadObj.CustomHeaderTitle.text =  @"new title";

Xcode 似乎对路径很好(没有显示错误),我可以看到每次更新表视图并且看到一个新单元格时调用该方法很好,但节标题中的标签没有更新。

我会以正确的方式解决这个问题吗?或者我可能需要刷新部分标题以使更新可见?

4

2 回答 2

0

我认为,这样做是个好主意:

- (void)scrollViewDidScroll:(UIScrollView)scrollView
{

}

并且,您应该检查,您在哪个队列/线程中调用标签更新,它应该只从主线程调用

于 2014-11-23T18:44:36.597 回答
0

经过大量调查和试验,我得出结论,无法更新通过故事板添加的自定义部分标题的属性。尽管我很乐意任何人以其他方式发布证据。

作为解决方案/解决方法,我实现的方法是以编程方式将标题创建为表视图 viewForHeaderInSection 中的 UIView。这些 UIView(及其子视图)可以在需要时毫无问题地更新(例如 mityaika07 建议的 scrollViewDidScroll),并且无需重新加载表格或其他复杂情况。

我添加了一个测试用例来帮助说明问题

于 2014-12-17T08:48:55.160 回答