2012-03-26 13 views
3

Ich bin neu in der iPhone-Programmierung und steckte in einer Situation.Wie bearbeitet man die UITableViewCell mit UIButton?

Die Situation ist, dass ich UITableView in den Bearbeitungsmodus auf UIButton klicken möchte. Wenn ich den Bearbeitungsmodus betrete, sollte ich ein Kontrollkästchen für jede Zelle haben. Und ich wollte die Bilder der geprüften Zellen ändern, wenn ich auf UIToolBarButton klicke.

Wie kann ich dies erreichen? Jede Hilfe wäre willkommen.

+0

wenn Sie die überprüften UITableViewCells die Bilder zu UIToolBarButton machen wollen, dann denken Sie es zweimal bcoz wenn Tabelle von 100 Zellen ist und wenn der Benutzer nur 10 Zellen wählt dann, wie ru 10 UITollBar zeigen gehen Symbole. –

+0

Ich werde nicht 100 Toolbar-Elemente hinzufügen, aber die Bilder von Zellen auf den Klick von Tollbar Artikel ändern möchten – Hassam

+0

überprüfen Sie die bearbeitete Antwort. Willst du das? –

Antwort

5

Genau wie lnafziger sagte der Editiermodus Anruf

[self.tableview setEditing:YES animated:YES]; 

in der Funktion eingeben, die Ihre Schaltfläche verbunden ist.

Um Kontrollkästchen auf Zellen zu zeigen, wenn die Tabelle, diese Zeilen zu viewDidLoad hinzufügen im Bearbeitungsmodus ist:

[self.tableView setAllowsSelectionDuringEditing:YES]; 
[self.tableView setAllowsMultipleSelectionDuringEditing:YES]; 

für Ihre UIBarButtonItem Dann wird die Bilder zu ändern, ein for-Schleife mit dem [self.tableView indexPathsForSelectedRows] Array hinzufügen, und jede Änderung Zellen Bild etwa so:

NSArray *paths = [self.tableView indexPathsForSelectedRows]; 
for (NSIndexPath *path in paths) { 
    UITableViewCell *cell = (UITableViewCell *)[self.tableView cellForRowAtIndexPath:path]; 
    //change cell.imageView's image 
} 
+0

Es scheint gut zu funktionieren, aber ein kleines Problem. Es ändert nur die Bilder der momentan sichtbaren Zellen und ändert nicht die Bilder der selektierten, aber nicht sichtbaren Zellen. Gibt es eine Lösung für diese – Hassam

+0

in der CellForRowAtIndexPath oder WillDisplayCellAtIndexPath Methode ändern Sie das Bild wenn 'cell.selected' Bitte akzeptieren Sie die Antwort. – JonasG

1

Um den Bearbeitungsmodus mit einer Enter-Taste, rufen Sie den folgenden Code aus der Aktionsmethode der Schaltfläche:

[self.tableview setEditing:YES animated:YES]; 

die checkBox zu ändern, können Sie die editingAccessoryView der Zelle zu Ihrer benutzerdefinierten Ansicht festlegen müssen (in der Regel in cellForRowAtIndexPath).

Verwandte Themen