UITableView Keine Daten Bildschirm
Meine UITableView abrufen von Daten aus dem internet. Manchmal ist es nicht erhalten (Zelle) Daten. Es zeigt nur eine leere Tabelle.
Wie kann ich eine Nachricht/Zelle für den Benutzer, dass keine Datensätze gefunden wurden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchtest du wieder eine Zelle Berichterstattung über das fehlen von Daten.
Wenn Sie halten Ihr Handy Daten in ein array das ist die Eigenschaft einer Klasse (sagen wir mal
NSArray *listings
), können Sie gehen:reloadData
auf Ihre UITableView.dataSource
delegieren, sagt er. Das ist, warum Sie fudge dienumberOfRowsInSection
immer Antwort 1, auch wenn die eigentliche Antwort ist 0. Gehen Sie voran und löschen Sie das Letzte Element aus dem Quell-array werden; wir behaupten, es ist 1 Zeile, dann füllen Sie es leer, genau wie wir sollten.Können Sie fügen Sie einen test in Ihrem -tableView:cellForRowAtIndexPath: Implementierung und Darstellung eine Besondere UITableViewCell zu sagen "keine Ergebnisse vorhanden", wenn Sie keine Daten.
Ein weiterer Ansatz, der in der Regel besser aussieht, ist das hinzufügen einer benutzerdefinierten Ansicht, die UITableView direkt. Vergessen Sie nicht, um es zu entfernen, wenn es Ergebnisse anzuzeigen.
Können Sie fügen ein UILabel, um Ihre anzeigen
Dies kann programmgesteuert erstellt werden oder in Ihrem xib. Wenn Ihr xib enthält eine UITableView als [selbst-view], wie es typisch für ein UITableViewController, dann erstellen Sie eine Eigenschaft für das label auf Ihrem viewController
Ziehen UILabel aus der library in das Dokument-Fenster als gleichrangiges Element zu " Ihrer "Tabelle Anzeigen".
Text-Eigenschaften (bold 36pt-Schrift, Licht Grau sieht ziemlich gut)
Control-ziehen Sie aus dem "File' s Owner", die Verdrahtung der Steckdose, um das label.
In der server-callback können Sie die Beschriftung hinzufügen, um die Ansicht. Hier ist ein Beispiel:
Könnten Sie tun, die gleiche Sache in tableView:numberOfRowsInSection: wenn das passt Ihr design besser
Ich darüber nachdachte, zeigt eine
emptyDataView
entweder in Kopf - /Fußzeile, oder hacking, eines der Zeile, wie die vorgeschlagene Antwort von Dan.Aber ich denke, die sauberste ist, eine Ansicht zu erstellen, die außerhalb der tableView.
Dann ausblenden/einblenden der anzeigen in
numberOfRowsInSection:
wie diese:Funktioniert dies auch mit Core Data NSFetchedResultsController-und ausblenden der anzeigen auf einmal gibt es Daten.
Wie erwähnt, in dem folgenden link, ist es einfach, wenn wir ein label erstellen und einstellen, dass als hintergrund anzeigen für UITableView wie unten. Vielleicht ist es nützlich für jemanden. http://www.appcoda.com/pull-to-refresh-uitableview-empty/
self.tableView.backgroundView = nil
wenn Daten vorhanden sind.Hier verwende ich code wie: