1. 程式人生 > >UITableViewCell 摺疊與展開

UITableViewCell 摺疊與展開


需求:

   一級列表展示分類,二級類表顯示分類的具體詳細資訊:

   比如: 一級列表顯示: 北京,天津,上海等,

           二級列表 點選北京顯示 朝陽區,海淀區,玄武區,等等

          但是隻有一個是展開的,如果北京市展開那麼其他都要摺疊.

      

      主要方法:

- (void)didSelecterSection:(AddressTableHeader*)header{
    
    NSInteger tag = header.tag;

    // 第一步
    if (selectedSection != tag && selectedSection != -1) {
        exentenDict[@(selectedSection)] = @(false);

        NSIndexSet *set = [[NSIndexSet alloc]initWithIndexesInRange:NSMakeRange(selectedSection, 1)];
        [_chooseLocationView.tableView reloadSections:set withRowAnimation:UITableViewRowAnimationAutomatic];

    }
    
    // 第二步
    
    BOOL exten = exentenDict[@(tag)].boolValue;
    exentenDict[@(tag)] = @(!exten);
    
    NSIndexSet *set = [NSIndexSet indexSetWithIndex:tag];
    
     [_chooseLocationView.tableView reloadSections:set withRowAnimation:UITableViewRowAnimationAutomatic];
    
    selectedSection = tag;

}


注意順序:

必須先判斷是否是點選的與上次的是同一行,如果是先要把上一行摺疊,然後才可以展開下一行,如果不是則直接展開當前行.好了如果還有問題可以隨時諮詢.