2009-03-17 8 views
4

Ich habe eine UITableView mit einigen leeren Abschnitten. Ich möchte, dass der Benutzer mit den Standard-Bearbeitungsmodus-Steuerelementen eine Zeile in diese verschieben kann. Der einzige Weg, wie ich es bisher schaffen kann, ist eine Dummy-Zeile in meinen "leeren" Abschnitten zu haben und sie zu verstecken, indem tableView:heightForRowAtIndexPath: verwendet wird, um der Dummy-Zeile eine Höhe von Null zu geben. Dies scheint es als eine 1-Pixel-Zeile zu verlassen. Ich kann das wahrscheinlich verstecken, indem ich eine spezielle Art von Zelle mache, die nur mit [UIColor groupTableViewBackgroundColor] gefüllt ist, aber gibt es einen besseren Weg?UITableView: Verschieben einer Zeile in eine leere Sektion

Dies ist alles im gruppierten Modus von UITableView.

UPDATE: Das Verschieben von Zeilen in leere Abschnitte ist ist möglich ohne irgendwelche Tricks, aber die "Empfindlichkeit" ist schlimm genug, dass Sie Tricks benötigen, um es für allgemeine Benutzer (die nicht geduldig sein werden genug, um die Reihe langsam um den leeren Bereich zu bewegen, bis die Dinge klicken).

Antwort

0

Während des Bearbeitens können Sie überwachen, ob sich die Tabellenansicht im Bearbeitungsmodus befindet. Verwenden Sie diese Flagge innerhalb von cellForRowAtIndexPath, um Wetter zu entscheiden oder die 'leere' Reihe nicht anzuzeigen. Im normalen Modus wird die Zeile nicht angezeigt, aber wenn der Benutzer auf 'edit' tippt, sollte cellForRowAtIndexPath erneut aufgerufen werden und dieses Mal entscheiden, ob die Zeile angezeigt werden soll. Die Details dazu hängen von Ihrer Datenquelle und davon ab, wie Sie sie an das Display kleben. Wenn Sie den Anruf nicht erneut erhalten, können Sie manuell Zeilen mit insertRowsAtIndexPaths/deleteRowsAtIndexPaths einspeisen und/oder reloadData anrufen, um eine Aktualisierung zu erzwingen.

0

Ich habe festgestellt, dass wenn Sie -1.0 von der heightForRowAtIndexPath-Methode zurückgeben, wird die 1 Pixelzeile entfernt.

1

Ich habe festgestellt, dass die Dummy-Zeile in iOS 4.3 eine Höhe von mindestens 1 Pixel haben muss, um den gewünschten Effekt zu erzielen, dass eine Zeile in diesen Bereich verschoben werden kann.

Ich fand auch, dass die Dummy-Zeile nur im ersten und letzten Abschnitt benötigt wird; Zwischen diesen Abschnitten besteht dieses Problem nicht.

Und es sieht so aus, als ob in iOS 5.0 keine Dummy-Zeilen oder spezielle Tricks benötigt werden.

Verwandte Themen