如何知道是否使用MGSwipeTableCell删除了所有单元格

时间:2016-07-27 06:24:43

标签: ios objective-c uitableview

我在我的表视图中使用MGSwipeTableViewCell,通过在显示删除按钮的单元格上滑动来删除行,然后按下它以使用此库删除或删除单元格。我的问题是,当删除所有单元格时,表格视图消失,我的视图布局受到干扰。因此,当我通过滑动删除所有单元格时,我希望收到通知,因此我可以应用或更新约束来管理视图的布局。

2 个答案:

答案 0 :(得分:1)

您应该使用以下委托方法,在这里您可以检查删除特定单元格后剩余的行数,并根据要求更新约束。

-(BOOL) swipeTableCell:(MGSwipeTableCell*) cell tappedButtonAtIndex:(NSInteger) index direction:(MGSwipeDirection)direction fromExpansion:(BOOL) fromExpansion
{
      NSLog(@"Delegate: button tapped, %@ position, index %d, from Expansion: %@",


    if (direction == MGSwipeDirectionRightToLeft && index == 0) {
    //delete button is tapped or full swiped
        NSIndexPath * path = [_tableView indexPathForCell:cell];
        [tests removeObjectAtIndex:path.row];
        [_tableView deleteRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationLeft];
        return NO; //Don't autohide to improve delete expansion animation
    }

    return YES;
}

来源:MGSwipeDemo示例代码

答案 1 :(得分:0)

在此之后删除单元格的位置,您可以使用此属性通知表格视图中剩余单元格的数量。

NSLog(@"剩余可见单元格=%lu",(unsigned long)_table.visibleCells.count);

所以通过使用这个代码,当没有。单元格将为零,那么您可以处理您的要求。

[_table deleteRowsAtIndexPaths:@[[_table indexPathForCell:btn]] withRowAnimation:UITableViewRowAnimationFade];
NSLog(@"Remaining visible cells = %lu",(unsigned long)_table.visibleCells.count);
if (_table.visibleCells.count==0) {
    [[[UIAlertView new] initWithTitle:nil message:@"All record deleted" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil] show];
}