TVAnimationsGestures可重复使用的bug:

时间:2014-03-20 01:19:42

标签: ios iphone objective-c uitableview insert-update

我正在使用apple中的示例模板here。只有三个部分时效果很好。但是,如果我将截面数乘以5,则从最底部的单元格打开该截面。然后向上滚动然后向下滚动,你会看到单元格被重用,单元格认为它处于关闭状态,当你点击打开的单元格的节头时会导致崩溃。

有没有人遇到同样的问题?有没有人有同样的解决方案?

提前致谢。

1 个答案:

答案 0 :(得分:1)

示例项目中存在一个微妙的错误。示例代码不考虑为其他部分重用的APLSectionHeaderView对象。

添加行

sectionHeaderView.disclosureButton.selected = (section==self.openSectionIndex)?YES:NO;

在从方法返回之前

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

并更改此

        APLSectionInfo *previousOpenSection = (self.sectionInfoArray)[previousOpenSectionIndex];
        previousOpenSection.open = NO;
        [previousOpenSection.headerView toggleOpenWithUserAction:NO];

到这个

        APLSectionInfo *previousOpenSection = (self.sectionInfoArray)[previousOpenSectionIndex];
        previousOpenSection.open = NO;
        if (previousOpenSection.headerView.section  == previousOpenSectionIndex) {
            [previousOpenSection.headerView toggleOpenWithUserAction:NO];
        }

方法

- (void)sectionHeaderView:(APLSectionHeaderView *)sectionHeaderView sectionOpened:(NSInteger)sectionOpened