Wie die Vorspannung oder lazyload Bilder in einer UITableView auf dem iPhone?
Ich habe ein problem beim scrollen nach oben und unten ein tableView auf dem iPhone wird es Art stecken beim laden der Bilder ich brauche eine Methode zum laden der Bilder, so dass das scrollen kann Flüssigkeit oder laden Sie die Bilder, bis das scroll-Ereignis beendet...
jede Hilfe zu diesem?
- Heute würden Sie
UITableViewDataSourcePrefetching
. Wenn Sie google-demos/Beispiele für dieses Protokoll ist, sollten Sie sich gute links.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich dieser Artikel sehr hilfreich. Es bietet ein sehr ausführliches Beispiel für das verzögerte laden von Bildern in dem Haupt-runloop.
Faul, Tabelle, Bilder, Beispiel-Code enthalten im iPhone-Entwickler-Ressourcen. Check-out Foto-Standorte Beispiel-Code als gut. Es nutzt Core Data und "lazy loading" - Verfahren, wenn Sie Ihre Bild-Dateien auf dem Gerät gespeichert sind.
Gut, generell Vorausladen der Bilder für die Tabellenansicht ist eine schlechte Idee. Denken Sie an folgende situation: Sie haben 100 Zellen, die jeweils mit einem Bild. Das bedeutet, dass Sie laden müssen, 100 Bilder vor dem anzeigen der Tabelle, die haben gravierende Auswirkungen auf das verfügbare Speicher.
Den "be-Wirkung" du redest, kann das zwei Ursachen haben:
a) wie Sie gesagt haben, das problem mit dem Bilder laden. Wenn dem so ist, tun Sie es in einem anderen thread, und übergeben Sie das Bild, um den Haupt-thread, wenn es lädt
b) Sie sind mit Bildern, die größer oder kleiner als die angegebene Größe. Dadurch wird die Größe des Bildes, wenn es auf dem Bildschirm angezeigt wird, verursacht das hässliche stop-Effekt - die Lösung ist, Bilder zeichnen in der Größe, die ist genau das gleiche wie Ihre Größe.
Chope, das war hilfreich, Paul
cellForRowAtIndexPath
. Um dies zu erreichen, sollte diese Methode das laden von Bildern für das aktuelle Element & nächsten 3? Ich könnte cache-Bilder, so dass es nicht zu einem Leistungseinbruch. Oder jede 4. Zelle kann ich das laden von Bildern für das Verfahren 3 Elemente.UITableViewDataSourcePrefetching
; es ist zu viel für mich, um zu versuchen zu skizzieren, die hier in den Kommentaren). Aber Sie müssen einfach nicht zum schreiben Ihrer eigenen code prefetching nicht mehr, Apple ist mittlerweile ziemlich smart in der Bereitstellung von Mechanismen für Sie, dies zu tun. Es dauert noch ein wenig Arbeit, aber ruft Sie aus: "Oh, wie viele Zellen soll ich prefetch und Wann sollte ich das tun."Nicht sicher wegen der Bilder, aber mit dem text habe ich mir heruntergeladen JSON-Dateien, wenn die Ansicht geladen, geparst und in ein array geladen und dann die tableview mit diesem array.