2010-12-16 6 views
0

Gibt es eine Delegate-Methode, die den Moment, in dem ein Streichen auf die Zelle der Tabelle und die Schaltfläche zum Löschen von rechts kommt, aufgerufen wird?Delegierte Methode auf Fingure Swipe auf einer Zelle

Ich wollte den Swipe verfolgen und dort etwas tun.

Außerdem wird die Delegate-Methode aufgerufen, wenn Sie in der Zelle auf die Schaltfläche "Löschen" tippen.

alt text

Antwort

6

Die UITableViewDelegate Methode tableView:editingStyleForRowAtIndexPath: wird aufgerufen, bevor eine Zeile eingibt "bearbeiten" -Modus. Dies wird aufgerufen, wenn Sie eine Zelle wischen, oder wenn die Tabellenansicht die Nachricht setEditing:animated empfängt. Wenn Sie eine Bearbeitungsschaltfläche haben, mit der die Tabellenansicht in den Bearbeitungsmodus versetzt wird, müssen Sie darauf achten, dass sie für jede sichtbare Zelle aufgerufen wird.

So können Sie so etwas wie:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView 
      editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (tableView.editing) { 
     return UITableViewCellEditingStyleDelete; 
    } 
    else { 
     // do your thing 
     return UITableViewCellEditingStyleDelete; 
    } 
} 

Wenn Sie auf die Schaltfläche Löschen tippen tableView:commitEditingStyle:forRowAtIndexPath: aufgerufen wird.

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 

    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     // repsond to delete 
    }  
} 

Und wenn Sie den Text der Schaltfläche Löschen ändern möchten, können Sie tableView:titleForDeleteConfirmationButtonForRowAtIndexPath:

Wenn auf der anderen Seite Sie die Entf-Taste, um nicht verwenden wollen, sondern etwas tun, was Sie in aussehen sollte UISwipeGestureRecognizer und handle es selbst.

+0

Einfach tolle Informationen. Vielen Dank Herr! – Abhinav

+0

@Robert Schön! +1 :) – TonyMkenu

Verwandte Themen