TableView单元格扩展不会发生在单个单元格

问题描述:

我正在通过使用下面的扩展tableViewCell。但问题是我能够一次扩展多个单元格。我想要做的是,如果一个单元格被展开,其他单元格被点击,前一个单元格应该一次展开一个单元格。TableView单元格扩展不会发生在单个单元格

这是我如何扩大。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 


if ([self.expandedCells containsObject:indexPath]) { 


    [self.expandedCells removeObject:indexPath]; 



}else{ 
    isExpanded=YES; 
    [self.expandedCells addObject:indexPath]; 
    //Populate expanded cell here 

} 

[self.tableView beginUpdates]; 
[self.tableView reloadData]; 
[self.tableView endUpdates]; 


} 

我假设self.expandedCells有要展开的单元格数组。如果是这种情况,在didSelctRow中,从expandedCells数组中删除所有对象,然后添加选定的单元格。并执行重新加载。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 


    [self.expandedCells removeAllObjects]; 
    isExpanded=YES; 
    [self.expandedCells addObject:indexPath]; 



    [self.tableView beginUpdates]; 
    [self.tableView reloadData]; 
    [self.tableView endUpdates]; 


} 
+0

我仍然可以展开多个单元格。但是当我再次单击任何展开的单元格时,所有单元格都将被删除。 – iSD 2014-09-12 12:46:53

+0

如果我移动'isExpanded = YES; [self.expandedCells addObject:indexPath];'如果'里面的'单元格不适合扩展。 – iSD 2014-09-12 13:00:31

明白了。只是在添加任何东西之前检查数组数。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 


    if ([self.expandedCells containsObject:indexPath]) { 


    [self.expandedCells removeObject:indexPath]; 



    }else{ 
    isExpanded=YES; 
    if (self.expandedCells.count>0) { 
    [self.expandedCells removeAllObjects]; 
    } 


    [self.expandedCells addObject:indexPath]; 
    //Populate expanded cell here 

} 

[self.tableView beginUpdates]; 
[self.tableView reloadData]; 
[self.tableView endUpdates]; 


}