Ich habe eine statische UITableView wie im ersten Bild gezeigt, aber jetzt muss ich eine Zeile mit einem Button hinzufügen, dass, wenn ich berühre eine dynamische Zelle der Tabelle wie im zweiten Bild gezeigt Das Problem ist, dass ich keine neuen Zellen zu einer statischen UITableview hinzufügen kann. Was wäre die beste Vorgehensweise, um dies zu erreichen?Zeile programmgesteuert im statischen UITableView hinzufügen
Antwort
Grundsätzlich statische Tableview soll nicht (außer Zellinhalt) zur Laufzeit geändert werden. Dies wird deutlich in docs:
Verwenden Sie statische Zellen, wenn eine Tabelle nicht das Layout ändert, unabhängig von den spezifischen Informationen angezeigt wird.
In diesem Fall empfiehlt es sich, ein dynamisches Fernsehgerät zu erstellen und mit der entsprechenden Anzahl an Zellen zu füllen. Sie müssen dazu DataSource delegate verwenden. DataSource selbst wird normalerweise über Wörterbücher oder Arrays ausgeführt.
z. du hast ein dict 'phoneNumbers' und einen Button, der einen neuen hinzufügen soll.
Zunächst fügen Sie der Schaltfläche in cellForRowAtIndexPath einen Selektor hinzu: zum Beispiel über ein Tag. Dann Taste Aktion wird so aussehen:
-(void)yourButtonClicked:(UIButton*)sender
{
[self.phoneNumbers setObject:phoneNumber forKey:numberKey];
[self.tableView reloadData];
}
//Swift
func yourButtonClicked(sender: UIButton) {
self.phoneNumbers["numberKey"] = phoneNumber
self.tableView.reloadData()
}
(leider ist es Obj-C, aber ich bin ganz sicher, zügig an dieser Stelle nicht viel anders ist)
reload benötigt wird Tableview Layout zu aktualisieren, nachdem Änderungen an DataSource-Objekten werden vorgenommen. Es ist in diesem Fall ziemlich nah an 'neu zeichnen'.
Auf dem Bild von Contacts App zeigte Ihnen Objekt '(555) 555-5555' NSString und Schlüssel ist wahrscheinlich 'andere'. Sie können dieses jede mögliche Weise Sie
mögen, nachdem alleSo verwenden und speichern Sie nur die Einrichtung numberOfRowsInSection müssen: so dass für den Abschnitt, wo Sie wollen Zellen hinzufügen es die Anzahl der Objekte im Wörterbuch phonenumbers gibt
Danke, ich verstehe, wie man den Abschnitt der Telefonzellen macht, aber das ist der beste Weg, um die aktuellen statischen Abschnitte in meiner Tabellenansicht dynamisch zu machen. Vielen Dank! –
Sie müssen die Option 'Inhalt' für TableView in Ihrem XIB/Storyboard Attribute Inspector von 'Statische Zellen' in 'Dynamische Prototypen' ändern. Stellen Sie sicher, dass jeder Zellenprototyp einen eindeutigen Zellidentifikator hat. –
- 1. Festlegen von statischen Zellen in uitableview programmgesteuert
- 2. Entfernen der Leiste im Standard UITableView programmgesteuert
- 3. UITableView in Swift programmgesteuert
- 4. NSInternalInconsistencyException beim Hinzufügen von Zeile zu UITableView
- 5. Dynamisch Zeile im gruppierten TableView-Stil hinzufügen
- 6. Programmgesteuert Hinzufügen von Einschränkungen zu einem UITableView-Header
- 7. Wie programmgesteuert eine Suchleiste zu einem UITableView-Header hinzufügen?
- 8. Eine Gridview-Zeile im Bearbeitungsmodus programmgesteuert einfügen
- 9. Ändern Sie Textlabel in statischen Zellen in UITableView
- 10. AdMob-Banner programmgesteuert hinzufügen
- 11. Vorhandenes Element im VS2010-Projekt programmgesteuert hinzufügen?
- 12. Fügen Sie benutzerdefinierte Zelle zu UITableView programmgesteuert
- 13. Hinzufügen einer Zeile zu einem Abschnitt in UITableView nicht möglich
- 14. UITableView letzte Zeile wird abgeschnitten
- 15. UITableView wählen Zeile nicht
- 16. UITableView Zeile löschen
- 17. Ändern der Größe von UITableView programmgesteuert
- 18. Hinzufügen einer Zeile zu UITableView, wenn eine Schaltfläche gedrückt wird
- 19. Hinzufügen Schalter in UITableView Zelle in Swift
- 20. UITableView Hinzufügen/Löschen von Abschnitten, während nicht im Bearbeitungsmodus?
- 21. Zeilen programmgesteuert zum Raster im WPF-Fenster hinzufügen
- 22. UITableView - welche Zeile wurde ausgewählt?
- 23. UiTableView Elemente per Abschnitt programmgesteuert organisieren
- 24. UITableView scrollt programmgesteuert zu nicht existierender Zelle
- 25. Programmgesteuert Kendo Gitter Zeile
- 26. Zeile auswählen, während sich UITableView im Bearbeitungsmodus befindet
- 27. Zeile in Datagridview programmgesteuert auf checkedlistbox.check hinzufügen und löschen auf
- 28. UITableView Zelle hinzufügen Animation
- 29. hinzufügen uiview oben UITableView
- 30. Hinzufügen zu UITableView
Das heißt, Sie brauchen eine dynamische Tabellenansicht Oder Sie können Eureka verwenden. – Sweeper