2016-07-27 9 views
0

Ich benutze MGSwipeTableViewCell in meiner Tabellenansicht zum Löschen von Zeilen durch Streichen auf Zellen, die eine Schaltfläche zum Löschen zeigt und drücken Sie auf Zellen löschen oder entfernt, mit dieser Bibliothek. Mein Problem ist, dass wenn alle Zellen gelöscht werden, die Tabellenansicht verschwindet und das Layout meiner Ansicht gestört wird. Daher möchte ich benachrichtigt werden, wenn ich alle Zellen durch Wischen lösche, sodass ich die Einschränkung anwenden oder aktualisieren kann, um das Layout der Ansicht zu verwalten.Wie Sie wissen, ob alle Zellen mit MGSwipeTableCell gelöscht wurden

Antwort

1

Sie sollten die folgende Delegate-Methode verwenden. Hier können Sie überprüfen, wie viele Zeilen nach dem Löschen einer bestimmten Zelle übrig sind, und Ihre Integritätsbedingungen je nach Bedarf aktualisieren.

-(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; 
} 

Quelle: MGSwipeDemo Beispielcode

0

Wo Sie Ihre Zelle danach löschen können Sie mitteilen, wie viele verbleibenden Zellen unter Verwendung dieser Eigenschaft in der Tabellenansicht sichtbar sind.

NSLog (@ "Verbleibende sichtbare Zellen =% lu", (unsigned long) _table.visibleCells.count);

Also mit diesem Code, wenn nein. Zelle ist Null, dann können Sie mit Ihren Anforderungen umgehen.

[_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]; 
} 
Verwandte Themen