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];
}
答
明白了。只是在添加任何东西之前检查数组数。
-(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];
}
我仍然可以展开多个单元格。但是当我再次单击任何展开的单元格时,所有单元格都将被删除。 – iSD 2014-09-12 12:46:53
如果我移动'isExpanded = YES; [self.expandedCells addObject:indexPath];'如果'里面的'单元格不适合扩展。 – iSD 2014-09-12 13:00:31