Ich habe viele Beiträge zum Hinzufügen und Löschen von Zellen in der Tabellenansicht gesehen. Was ich will ist, wenn der Benutzer auf die Schaltfläche Hinzufügen in der Zelle klickt, muss er den Benutzer fragen, was er in die Zelle eingeben soll. Dann gibt der Benutzer den Text in die Zelle ein und fügt ihn dann in die Tabellenansicht ein. Kann mir jemand sagen, wie ich das erreichen soll?Neue Tabellenansichtszellen dynamisch hinzufügen
Antwort
Ich würde die Schaltfläche hinzufügen in der Fußzeile oder Kopfzeile, anstatt in einer Zelle, es ist meine persönliche Meinung, dass die Verwaltung der Zugabe von Zellen einfacher wäre.
Davon abgesehen, wissen nicht genau, was dein Problem ist, wenn Sie Ihren Controller als uitable delegieren, dann können Sie ganz einfach hinzufügen oder Zellen entfernen, indem sie alle relevanten Methoden zugreifen, insbesondere, dass man:
- (void)tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleInsert) {
// ......
}
}
, die durch genannt wird:
[yourTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath ] withRowAnimation:UITableViewRowAnimationAutomatic];
haben ein Verfahren wie (UITableViewCell *) createNewCellForTableView
. Dadurch wird UITableViewCell erstellt und zurückgegeben.
Verwenden Sie in Ihrer CellForRowAtIndexPath
diese Methode zum Erstellen aller Zellen für Ihre tableView
. Dies muss auf diese Weise geschehen, denn wenn Sie eine [tableView reloadData];
ausführen, muss jedes Mal, wenn Sie eine neue Zelle hinzufügen, neue Zellen erstellt werden.
Schließlich, nachdem Sie neue Zellen erstellen, in der IBAction der ADD
Schaltfläche, stellen Sie sicher, dass Sie die TableView neu laden.
~ Eine einfachere Alternative:
Da Sie gerade für den Benutzer suchen Text hinzufügen möchten, können Sie eine textField
im UITableViewCell eingebettet haben. Sobald der Benutzer mit der Eingabe fertig ist, können Sie den Text zu dataSource
hinzufügen (das Array füllt die tableView
) und das TableView neu laden. Stellen Sie sicher, dass Sie den TextField enabled
oder disabled
haben, wie Sie es wollen. Jetzt
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return numRows;
}
in:
Dies ist, wie ich es tun und es funktioniert:
erste, eine Instanzvariable wie folgt erstellen:
int numRows = 0;
die Methode implementieren numberOfRowsInSection
wie folgt Meine Anwendung, an einer Stelle verwende ich eine REST-API und bekomme einen JSON, ich aktualisiere den Wert von numRows als numRows = [jsondata count];
Schreiben Sie Ihre Methode cellForRowAtIndexPath
so, wie Sie es wünschen würden, wenn Sie den dynamischen Inhalt hätten. In meinem Fall verwende ich zum Beispiel indexPath.row und bereite die Zelle vor und gebe sie zurück. Also, sobald Sie Ihre dynamische Inhalte haben, aktualisieren Sie die Inhalte von numRows
Diese Methode wird nur nennen, wenn die Variable numRows größer als 0 ist, wie ich oben und sofort erklärt rufen die Methode [YourtableView reloadData];
- 1. Neue Ressourcen dynamisch hinzufügen - CoAP
- 2. Wie dynamisch eine neue Spalte in einer HTML-Tabelle hinzufügen
- 3. Dynamisch neue Warteschlangen, Bindungen und Austausch als Beans hinzufügen
- 4. Wie dynamisch neue Zeilen in Table Control in WPF ... hinzufügen?
- 5. Inotify dynamisch Index neue Ordner
- 6. Zeile hinzufügen dynamisch
- 7. jCarousel - dynamisch Elemente hinzufügen
- 8. Y-Achse dynamisch hinzufügen
- 9. Wie dynamisch neue anonyme Klasse?
- 10. JavaFX2 Controls dynamisch hinzufügen
- 11. Zeile dynamisch zu AdvancedDataGrid hinzufügen
- 12. SAP BODS Spalten dynamisch hinzufügen
- 13. Hinzufügen Jquery UI Button dynamisch
- 14. Hinzufügen zu einer Klasse dynamisch
- 15. $ watch over Objekt neue Eigenschaften dynamisch erstellt
- 16. FPDF neue Schriftart hinzufügen
- 17. NSMutableArray neue Methoden hinzufügen
- 18. hinzufügen neue Aktion Route
- 19. Neue Datenspalte hinzufügen
- 20. iText neue Seite hinzufügen
- 21. Zeilen dynamisch mit Javascript hinzufügen
- 22. ServiceStack: Routen dynamisch hinzufügen
- 23. Wie dynamisch Eingabeformular hinzufügen?
- 24. Dynamisch DockablePanes hinzufügen
- 25. fullcalendar Ereignisse dynamisch hinzufügen
- 26. Dynamisch faltbare Elemente hinzufügen
- 27. Hinzufügen von Fragmenten dynamisch
- 28. Hinzufügen von Ereignissen dynamisch
- 29. Elemente Attribute dynamisch hinzufügen
- 30. Subdomains dynamisch hinzufügen?
Ich glaube nicht, dass ich den Workflow verstehe. Sie sagen: "Der Benutzer klickt auf die Schaltfläche Hinzufügen in der Zelle" und auch "dann wird es in der Tabellenansicht hinzugefügt". Wenn jedoch eine Zelle eine Schaltfläche enthält, muss sie bereits in der Tabelle enthalten sein. –
Ja. Die Schaltfläche zum Hinzufügen ist bereits in der Zelle mit Standardtext vorhanden. Wenn der Benutzer auf die Schaltfläche "Hinzufügen" klickt, muss der Benutzer in der Lage sein, den Text in dieser Zelle zu bearbeiten. Nachdem der Benutzer den Text in dieser Zelle eingegeben hat, muss eine weitere Zelle mit Schaltfläche "Hinzufügen" und Standardtext hinzugefügt werden. –