2012-03-29 24 views
0

Ich werde ein bisschen verrückt mit diesem Problem. Ich habe eine Tabellenansicht, in der ich das Tabellenansichtszellen-Löschen-Bearbeitungssteuerelement in allen Zellen anzeigen möchte, außer dem letzten in einem Abschnitt. Aber stattdessen bekomme ich genau das Gegenteil, das Löschsteuerelement wird NUR in der letzten Zeile angezeigt. Kann mir jemand sagen warum?UITableViewCell Bearbeitungseigenschaft scheint umgekehrt zu sein

Meiner Ansicht Controller viewDidLoad Methode, die ich habe:

- (void)viewDidLoad { 
    ... 
    [self.tableView setEditing:YES animated:NO] 
} 

In meiner Tabellenansicht Datenquelle cellForRowAtIndexPath: Methode, die ich habe:

// All except for the last cell in the section are in editing mode 
    if ([indexPath row] == ([tableView numberOfRowsInSection:[indexPath section]] - 1)) { 
     [cell setEditing:NO animated:NO];   
    } 
    else { 
     [cell setEditing:YES animated:NO]; 
    } 

ich auch

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return UITableViewCellEditingStyleDelete; 
} 

Antwort

0

hinzugefügt haben Setzen Sie Ihre if Anweisungen innerhalb der tableView:editingStyleForRowAtIndexPath: m ethod und verwenden UITableViewCellEditingStyleNone für die letzte Zelle.

+0

Das funktioniert, wenn ich UITableViewCell setEditing entfernen: animierte: Anrufe. Aber ich muss in der Lage sein, die Löschschaltflächen anzuzeigen und zu verbergen, ohne die Tabellenansichtszelle tatsächlich neu zu laden, und ich wollte es mit diesen Aufrufen von UITableViewCell tun. – Darren

+0

Können Sie Ihren 'cellForRowAtIndexPath:'? Es könnte etwas damit zu tun haben, wie Sie Ihre Zelle erstellen. – Gobot

Verwandte Themen