我正在使用apple中的示例模板here。只有三个部分时效果很好。但是,如果我将截面数乘以5,则从最底部的单元格打开该截面。然后向上滚动然后向下滚动,你会看到单元格被重用,单元格认为它处于关闭状态,当你点击打开的单元格的节头时会导致崩溃。
有没有人遇到同样的问题?有没有人有同样的解决方案?
提前致谢。
答案 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