我使用的样本模板来自苹果,可以在这里找到。当只有三个部分时,它运行得很好。但是如果我将切片的数量乘以5,然后从最底部的单元格开始打开切片。然后向上滚动,然后向下滚动,你会看到单元格正在被重用,单元格认为它处于关闭状态,当你击中打开的单元格的section头时,导致崩溃。
有人遇到同样的问题吗?有人能解决这个问题吗?
示例项目中有一个细微的错误。示例代码没有考虑到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