我在视图控制器中有两个选项卡:在单击每个选项卡时,不同的数据显示在表格视图中,单元格在单击时可以展开和关闭。
问题在于当我在标签A中并在那里展开一个单元格时,然后单击标签B,加载新数据,该单元格仍然展开。如何以编程方式关闭它?
我正在使用- (UIView *)tableView:(FZAccordionTableView *)tableView viewForHeaderInSection:(NSInteger)section {
HeaderView *view = [tableView dequeueReusableHeaderFooterViewWithIdentifier:kAccordionHeaderViewReuseIdentifier];
if (listOfCategoryWhichHaveItems.count > 0) {
if (arrCategory.count > 0) {
arrCategory1 = _btnProduct.selected == YES ? [arrCategory objectAtIndex:0] : [arrCategory objectAtIndex:1];
NSDictionary *dict = arrCategory1[section];
view.lblHeaderTitel.text = [dict valueForKey:kCategory];
bool isSelected = [tableView isSectionOpen:section];
}
}
return view;
}
#pragma mark - <FZAccordionTableViewDelegate> -
- (void)tableView:(FZAccordionTableView *)tableView willOpenSection:(NSInteger)section withHeader:(UITableViewHeaderFooterView *)header {
loadFirstTime = false;
[tableView reloadSections:[NSIndexSet indexSetWithIndex:section] withRowAnimation: UITableViewRowAnimationAutomatic];
if (listOfCategoryWhichHaveItems.count > 0) {
_sectionNumber = §ion;
NSDictionary *dict = listOfCategoryWhichHaveItems[section];
[self setDataAccordingToCategories:[dict valueForKey:kCategory]];
}
}
- (void)tableView:(FZAccordionTableView *)tableView didOpenSection:(NSInteger)section withHeader:(UITableViewHeaderFooterView *)header {
}
子类来执行扩展。
{{1}}
答案 0 :(得分:0)
单击选项卡B时,请将表的keepOneSectionOpen属性设置为否。
Yourtable.keepOneSectionOpen = No;
答案 1 :(得分:0)
在FZAccordionTableView
GitHub repo我发现了这种方法:
- (void)closeSection:(NSInteger)section withHeaderView:(nullable FZAccordionTableViewHeaderView *)sectionHeaderView
这可能会做你想要的,但是不会在header file中声明,所以你不能直接调用它。
然而,你可以克隆repo,将行添加到头文件,添加+ commit + push到你的fork。然后在你的Podfile中使用that repo(或者你现在正在使用该库),这样你就可以使用你的框架,然后你可以调用该方法。
答案 2 :(得分:0)
点击每个标签,我就用了这个 [_tblProductServies closeAllSectionsExcept:-1]; 它的工作正常,谢谢大家。