Frage

Also habe ich diese Frage gesehen habe gefragt, vor und in der Tat, fragte ich es letzte Nacht, aber ich dachte, ich würde geben ihm einen anderen gehen, nur um zu sehen, ob ich irgendwelche andere Ansichten über das Problem bekommen.

Das Problem - Ich habe eine app, mit einer großen Anzahl von UIImageViews (mit Bild auf der Festplatte heruntergeladen) in einem Scrollview, die natürlich hat zwei große Probleme, die es: Speichernutzung und Performance. Nutzung ist nicht so sehr ein Problem in meinem app-Speicher, weil ich Techniken am Einsatz wie Ausreihen und Wiederverwendung imageviews und so. Aber Leistung ist eine ganz andere Sache. Gerade jetzt, da ein Speichervorgang zu speichern, ich nur Bild Dateipfade im Speicher ablegen, weil es lächerlich wäre Bilder im Speicher zu speichern. Aber das Problem dabei ist, dass von der Platte nimmt mehr Zeit mit dem Lesen als aus dem Speicher und verlangsamt auf dem Scrollview Scrollen immens .

Also, welche Art von Techniken Hat jemand von euch empfehlen, für so etwas? Ich habe three20 gesehen, aber nicht will, es zu benutzen, weil ich hohe Anpassbarkeit meiner Ansicht nach müssen, und das wird einfach nicht tun. Die Bilddateien sind nicht groß, aber nur Thumbnail-Größe, so gibt es keine Skalierung oder Übergröße. Es muss eine intuitive Art und Weise, dies zu handhaben. Die eingebaute Fotos App Griffe bis zu Tausenden von Fotos perfekt mit wenig Speicher und glatt und geschmeidig Leistung scrollen.

War es hilfreich?

Lösung

Im Grunde ist das Problem ist, dass Sie wahrscheinlich eine Reihe von Platten-I / O auf dem UI-Thread zu tun, die im Wesentlichen auf Grund von Leistungsproblemen gewährleistet ist.

Sie sollten Ihre Bilder auf einem Hintergrund-Thread und die Aktualisierung der Bildansichten auf dem Hauptthread betrachten Laden, wenn die Bilder geladen werden. Je nach Anwendungsfall können Sie mehr oder weniger bekommen klug, wie weit man im Voraus vorzuladen, etc, so dass Sie bereit Bilder haben können. (Es könnte ein Teil des nutzbaren Quellcode oder sogar Apple-Beispielcode gibt, die so etwas wie dies der Fall ist, aber ich weiß nicht, es aus der Spitze von meinem Kopf.)

Sie können feststellen, dass einige Anwendungen (nicht sicher über die Fotos App) eine Zwischenstufe, wo sie eine Last sehr kleine Daumengröße für alle Bilder, und es skaliert bis zur Größe machen, die bis in der vollen Größe Version als Platzhalter fungiert ist loaded--, wenn der Benutzer scrollt dieses Bild, bevor die volle Größe geladen wird, der sichtbare Effekt fast das gleiche ist, als ob das Bild da war die ganze Zeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top