2017-08-09 60 views
0

我在视图控制器中有两个选项卡:单击每个选项卡时,不同的数据显示在表格视图中,单击时展开和关闭的单元格。如何以编程方式关闭展开的表格视图单元格?

问题是,当我在标签A中,并在那里展开一个单元格,然后点击标签B,加载新数据,那个单元格仍然展开。如何以编程方式关闭它?我使用FZAccordionTableView子类来执行扩展。

- (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 = &section; 
     NSDictionary *dict = listOfCategoryWhichHaveItems[section]; 
     [self setDataAccordingToCategories:[dict valueForKey:kCategory]]; 
    } 
} 

- (void)tableView:(FZAccordionTableView *)tableView didOpenSection:(NSInteger)section withHeader:(UITableViewHeaderFooterView *)header { 
} 

回答

0

请您表的keepOneSectionOpen属性设置为不上点击选项卡B.

Yourtable.keepOneSectionOpen = No; 
0

FZAccordionTableViewGitHub repo,我发现这个方法:

- (void)closeSection:(NSInteger)section withHeaderView:(nullable FZAccordionTableViewHeaderView *)sectionHeaderView 

这可能会做什么你想,但是它并没有在header file中声明,所以你不能直接调用它。

但是,您可以克隆回购,将该行添加到头文件,将+ commit + push添加到您的分支。然后在你的Podfile中使用that repo(或者你现在正在使用这个库),所以你使用了框架的fork,然后你可以调用这个方法。

0

点击每个标签,我用这个 [_tblProductServies closeAllSectionsExcept:-1]; 现在工作正常,谢谢大家。

相关问题