在UITableViewCell下添加自定义嵌套UIView

时间:2018-05-02 14:51:12

标签: ios objective-c xcode uitableview

我在UITableviewCell下添加了expandale / collapsable UIView。我能够在按钮操作上添加和隐藏视图,但在另一个单元格中显示视图时无法将其删除。我在隐藏时将视图高度约束更新为0。

这是我的代码:

-(void)doneButtonClicked:(UIButton*)sender{
CGPoint buttonPosition = [sender convertPoint:CGPointZero 
toView:_tableView];
NSIndexPath *indexPath = [_tableView 
indexPathForRowAtPoint:buttonPosition];
CustomCell *cell = [_tableView cellForRowAtIndexPath:indexPath];

for (int i = 0; i < [_expandedIndexPaths count]; i++){
   if (i != indexPath.row && [_expandedIndexPaths count] > 0){
       [self.expandedIndexPaths removeObject:indexPath];
//Animation effect for expanding/collapsing view
       [cell animateClosed];
   }
}

if (sender.tag == 0) {
    [self.expandedIndexPaths addObject:indexPath];
    [cell animateOpen];
    //[self.expandedIndexPaths removeObject:indexPath];
}else{
    [self.expandedIndexPaths removeObject:indexPath];
    [cell animateClosed];
}
[_tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

}

1 个答案:

答案 0 :(得分:0)

约束更新也应该在cellForRow方法中进行。将常量设置为0。

  

如果希望视图再次出现在首先打开它的单元格中   地方并没有关闭它。在单元格中添加隐藏状态boolean var   每次更新该常量时都会更新并更新。然后   cellForRow检查该布尔值并设置常量   相应