Iphone uitableview中的节标题-重用标识符?

Iphone uitableview中的节标题-重用标识符?,iphone,uitableview,fragment,sectionheader,Iphone,Uitableview,Fragment,Sectionheader,我有一个表格,上面有自定义的章节标题。除此之外,我还实现了一个折叠特性,这样当触摸到一个标题时,所有未寻址的部分都会减少,而寻址的部分会扩展。 我意识到通过使用UIButtons作为背景视图。此外,按钮有不同的颜色和文本,这取决于它们的状态(展开与未展开) 我有一个问题,类似于ReuseIdentifier问题,即如果不重用表中已分配的单元格,如果开始滚动,就会出现某些片段。在这里,它只发生在我的第一部分,但它似乎是碎片和重复 是否有类似于重用已分配一次的headerviews的方法,如UITa

我有一个表格,上面有自定义的章节标题。除此之外,我还实现了一个折叠特性,这样当触摸到一个标题时,所有未寻址的部分都会减少,而寻址的部分会扩展。 我意识到通过使用UIButtons作为背景视图。此外,按钮有不同的颜色和文本,这取决于它们的状态(展开与未展开)

我有一个问题,类似于ReuseIdentifier问题,即如果不重用表中已分配的单元格,如果开始滚动,就会出现某些片段。在这里,它只发生在我的第一部分,但它似乎是碎片和重复

是否有类似于重用已分配一次的headerviews的方法,如UITableViewCells的ReuseIdentifier

还是有更好的方法

提前分配按钮以将它们存储在数组中对我来说没有用

下面是一些代码:

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

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 40)];
[button setShowsTouchWhenHighlighted:NO];
[button setTitleShadowColor:[UIColor clearColor] forState:UIControlStateNormal];
[button addTarget:self action:@selector(collapse:) forControlEvents:UIControlEventTouchUpInside];
button.tag  = section;

[button setAdjustsImageWhenHighlighted:NO];
button.backgroundColor = [UIColor colorWithRed:63.0f/255.0f  green:154/255.0f blue:201/255.0f alpha:1.0f];


[button.titleLabel setFont:[UIFont fontWithName:@"Helvetica" size:14.0]];
[button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
[button setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];
if (section == 0) {
//  [button setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
[button setTitle:@"  Newsroom" forState:UIControlStateNormal];
} else {
    [button setTitle:[NSString stringWithFormat:@"    Sektion %d", section] forState:UIControlStateNormal];

}


if (section == mySection) {
    [button setBackgroundImage:[UIImage imageNamed:@"sectionHeader_active.png"] forState:UIControlStateNormal];
    [button setBackgroundImage:[UIImage imageNamed:@"sectionHeader_active.png"] forState:UIControlEventTouchUpInside];
    [button.titleLabel  setTextColor:[UIColor whiteColor]];

} else {
    [button setBackgroundImage:[UIImage imageNamed:@"sectionHeader_inactive.png"] forState:UIControlStateNormal];
    [button setBackgroundImage:[UIImage imageNamed:@"sectionHeader_inactive.png"] forState:UIControlEventTouchUpInside];

    [button.titleLabel  setTextColor:[UIColor colorWithRed:96.0f/255.0f  green:96/255.0f blue:97/255.0f alpha:1.0f]];

}

return [button autorelease];
}

我还使用UIButton标题视图实现了一个折叠的节表。我发现试图缓存和恢复视图是愚蠢的,因为你不知道UITableView什么时候处理完它们(我遇到了崩溃)


我建议通过以下方式实现状态更改:更新数据模型;执行所有行插入/删除以执行折叠/展开;然后执行一个[tableView reloadData],它将调用ViewForHeaderSection,在这里使用数据模型的状态返回格式正确的uibutton视图

我还使用UIButton标题视图实现了一个折叠的节表。我发现试图缓存和恢复视图是愚蠢的,因为你不知道UITableView什么时候处理完它们(我遇到了崩溃)

我建议通过以下方式实现状态更改:更新数据模型;执行所有行插入/删除以执行折叠/展开;然后执行一个[tableView reloadData],它将调用ViewForHeaderSection,在这里使用数据模型的状态返回格式正确的uibutton视图