Wie Sie Zeilen / Zellen dynamisch zu einem UITableView hinzufügen, indem Sie eine Schaltfläche im iPhone drücken

7

Zunächst habe ich eine Tabellenansicht mit nur einer Schaltfläche zum Hinzufügen.

Wenn der Benutzer diese Taste drückt, muss ich die Zellenanzahl erhöhen und die Zellen wie folgt hinzufügen

Wie man die Zeilenanzahl schreibt und wie man neue Zeilen hinzufügt, indem man auf die Schaltfläche Hinzufügen

klickt

// Zeilenanzahl

%Vor%

// Inhalt auf Zellen / Zeilen

%Vor%

// ### Neue Zeile hinzufügen .. ###

%Vor%

Vielen Dank im Voraus ...

    
Ranga 02.05.2012, 05:34
quelle

5 Antworten

7

In Ihrer Anwendung müssen Sie Werte zu Array hinzufügen, wenn Sie eine Aktion in btn ausführen.

Zum Beispiel zeigen Sie in Ihrer Tabellenansicht NSString in cell.textLABEL.text an. Diese Zeichenfolgen befinden sich in NSMutableArray.

Jetzt, wenn buttonAction aufgerufen wird

in myAction

%Vor%

Versuchen Sie diese Logik in Ihrer Anwendung in Bezug auf Ihr Modal.

Ich hoffe, diese Logik wird dir behilflich sein.

    
KAREEM MAHAMMED 02.05.2012, 06:02
quelle
11

UITableView verfügt über die Eigenschaft, eine Zeile oder einen Abschnitt einzufügen. siehe Apple Doc

Es gibt viele Tutorials dazu. Es gibt 2 häufig zum Hinzufügen / Löschen von Zeile / Abschnitt.

%Vor%

Ich habe eine ähnliche Antwort geschrieben, wie man das benutzt: Versteckt die Zellen der Tabellenansicht mit im iPhone ein- / ausschalten

    
HelmiB 02.05.2012 05:51
quelle
7

Das erneute Laden der Tabellenansicht jedes Mal, wenn Sie eine Zeile hinzufügen oder entfernen möchten, führt zu einer schlechten Erfahrung für den Benutzer Ihrer Anwendung. Trotz der Tatsache, dass es nicht effizient ist, um diese Aufgabe durchzuführen, hat es auch einige negative Nebenwirkungen - ausgewählte Zeilen bleiben nicht ausgewählt nach dem erneuten Laden und Änderung ist nicht animiert.

UITableView hat Methoden, die erstellt wurden, um den Inhalt der Tabellenansicht dynamisch zu ändern. Dies sind:

%Vor%

Beachten Sie, dass Sie mit diesen Methoden angeben können, welche Art von Animation bei der Ausführung der angegebenen Operation verwendet wird. Sie können dieses Verhalten nicht erreichen, wenn Sie reloadData verwenden, um den Inhalt der Tabellenansicht zu ändern.

Darüber hinaus können Sie sogar mehrere Tabellenansichtsoperationen mit zusätzlichen Methoden der Tabellenansicht kombinieren (dies ist nicht notwendig):

beginUpdates      endUpdates

Umbruchoperationen, die Sie ausführen möchten, in beginUpdates und endUpdates Methoden und Tabellenansicht erstellt eine Animation für alle Operationen, die zwischen beginUpdates und endUpdates angefordert wurden ruft so auf, dass der ganze Übergang schöner aussieht als der, der durch ein paar getrennte Animationen erzeugt wird.

%Vor%

Es ist wirklich wichtig, dass der Datenquellenstatus mit dem von UITableView beibehalten wird. Aus diesem Grund müssen Sie sicherstellen, dass die Datenquelle die richtigen Werte zurückgibt, wenn die Tabellenansicht die angeforderten Operationen ausführt.

%Vor%

Wenn in der Tabellenansicht Operationen ausgeführt werden? Dies hängt davon ab, ob sich Vorgänge in einem Animationsblock befinden, der durch die Methoden beginUpdates und endUpdates definiert wird. Wenn ja, startet die Tabellenansicht Operationen nach endUpdates Methodenaufruf. Andernfalls führt die Tabellenansicht Operationen aus, unmittelbar nachdem der Aufruf zum Einfügen / Verschieben oder Löschen der Methode ausgeführt wurde.

Wenn Sie die Methoden beginUpdates und endUpdates verwenden, um Operationen in der Tabellenansicht auszuführen, müssen Sie wissen, dass in dieser Falltabellensicht die angeforderten Operationen der Stapel in einer bestimmten Reihenfolge ausgeführt werden, die nicht der Reihenfolge entspricht der Aufrufe, die Sie für Ihr Tabellenansichtsobjekt ausgeführt haben ( Apple's Dokumentation zu diesem Thema ).

Das Wichtigste, an das Sie sich erinnern sollten, ist das Löschen aller Operationen vor allen Einfügungsoperationen. Außerdem werden Löschoperationen in absteigender Reihenfolge ausgeführt (Operationen für die Indizes 3, 2, 1), wenn die Einfügeoperation in aufsteigender Reihenfolge ausgeführt wird (Operationen für die Indizes 1, 2, 3). Denken Sie daran, dass entscheidend dafür sorgt, dass der Zustand Ihrer Datenquelle mit dem in der Tabellenansicht beibehaltenen übereinstimmt.

Nehmen Sie sich Zeit für die Analyse der Reihenfolge der Vorgänge in der Datenquelle und in der Tabellenansicht, wie im folgenden Beispiel dargestellt.

Letztes Beispiel:

%Vor%     
Rafał Augustyniak 27.07.2014 18:27
quelle
2

Es gibt andere richtige Antworten hier (die Sie lesen sollten, weil sie tiefer gehen), aber ich habe damit über eine Woche gekämpft, nachdem ich alle Lösungen gelesen hatte, die ich finden konnte, weil es keine gab (die ich gefunden hatte) !) mit umfangreichen Beispielen.

Regeln dafür: 1. Änderungen müssen direkt an dem Array vorgenommen werden, das die Elemente enthält, die Sie in UITableView anzeigen. Wenn Sie einen Wert in UITableViewCell in der tableView:cellForRowAtIndexPath: -Methode auf gleiche Werte in self.expandableArray setzen, müssen Änderungen auch an und vorgenommen werden, damit diese Methoden funktionieren.

  1. Änderungen an dem Array von Elementen, die in der TableView angezeigt werden, müssen zwischen self.expandableArray und [tableView beginUpdates] vorgenommen werden.
  2. Die Anzahl der indexPaths-Arrays muss der Anzahl der zusätzlichen Elemente entsprechen, die Sie der tableView hinzufügen (ich denke, das ist offensichtlich, aber es tut nicht weh, darauf hinzuweisen)

Hier ist ein sehr einfaches Beispiel, das alleine funktionieren würde.

%Vor%

Ich hoffe, das spart jemandem viel Zeit und Kopfschmerzen. Wenn Sie dies auf diese Weise tun, müssen Sie nicht die gesamte tableView neu laden, um sie zu aktualisieren, und Sie können eine Animation dafür auswählen. Freier Code, klopf es nicht an.

    
jungledev 10.09.2015 21:20
quelle
0

Sie können einfach ein Objekt im Array hinzufügen und Ihre Tabellenansicht bei einem Klick auf die Schaltfläche erneut laden.

%Vor%     
vishiphone 02.05.2012 06:03
quelle

Tags und Links