0

我在我的 iPad 应用程序中实现了一个可扩展和可折叠的 UITableView。用户可以添加或删除一个部分。我正在删除位于部分标题上的按钮标签基础上的部分。如果我从最后一个到第一个删除部分,那么这很好,否则应用程序在第二次或第三次删除时崩溃。因为当我删除任何部分时,它不会刷新 UIButton 的标签。这是我的代码

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

    /*
     Create the section header views lazily.
     */
    // delete button.
    delButton = [UIButton buttonWithType:UIButtonTypeCustom];
    delButton.frame = CGRectMake(600.0, 5.0, 35.0, 35.0);
    [delButton setImage:[UIImage imageNamed:@"trash.png"] forState:UIControlStateNormal];
    delButton.tag = section;
    [delButton addTarget:self action:@selector(deleteSectionHeader:) forControlEvents:UIControlEventTouchUpInside];
    Section *aSection=[sectionArray objectAtIndex:section];
    if (!aSection.sectionHeaderView) {
        aSection.sectionHeaderView = [[SectionHeaderView alloc] initWithFrame:CGRectMake(0.0, 0.0, subActivityTableView.bounds.size.width, HEADER_HEIGHT) title:aSection.sectionHeader section:section delegate:self];
        [aSection.sectionHeaderView addSubview:delButton];
    }

    return aSection.sectionHeaderView;
}
-(void)deleteSectionHeader:(UIButton*)sender{
    NSInteger section = sender.tag;
    [sectionArray removeObjectAtIndex:section];
    [subActivityTableView deleteSections:[NSIndexSet indexSetWithIndex:section] withRowAnimation:UITableViewRowAnimationAutomatic];

    // reload sections to get the new titles and tags
    NSInteger sectionCount = [sectionArray count];
    NSIndexSet *indexes = [NSMutableIndexSet indexSetWithIndexesInRange:NSMakeRange(0, sectionCount)];
    [subActivityTableView reloadSections:indexes withRowAnimation:UITableViewRowAnimationNone];
[subActivityTableView reloadData];
}
4

0 回答 0