Muß ich die Delegierten einen UIScrollView in einem anderen Thread ausgeführt werden Performance-Probleme zu vermeiden beim Scrollen?

StackOverflow https://stackoverflow.com/questions/843220

Frage

Ich werde während des Scrollens einige anspruchsvolle Dinge in der Delegierten Methoden tun. Ich werde auch die dynamische Vorbelastung von Inhalten implementieren, so dass es theoretisch möglich ist, durch ein paar hundert tausend Bilder zu blättern. Ich fürchte aber, dass jedes Mal, wenn ich die Vorbelastung Aktion für den nächsten großen Brocken zu tun Richtung scrollen, der Delegierte für die Datenquelle warten die Daten und die gesamte Bildlaufansicht liefern für diesen Moment eingefroren werden.

Das Problem ist, dass ich immer Zugriff auf die Subviews der Scroll-Ansicht. Ich bin neu auf der Plattform, und ich weiß nicht, ob ich noch Zugang haben würde, wenn ich einen anderen Thread für diese Vorbelastung Aktionen öffnen? Oder würde die Scroll nicht für die Delegierten wartet um Dinge zu erledigen?

Ich bin in der Planungsphase, so haben nicht viel Jet eingebaut wurden.

War es hilfreich?

Lösung

Sie können nur UI-Klassen aus dem Haupt-Thread verwenden. Also, was Sie tun sollen, ist, so viel wie möglich in einem Hintergrundthread zu berechnen (ich glaube, Sie Ihre Bilder in einem Hintergrundthread laden), und dann performSelectorOnMainThread:withObject:waitUntilDone: verwenden, um UI-Klassen auf dem Hauptthread zu manipulieren.

Siehe Wie kann ich aktualisieren die Benutzeroberfläche in der Mitte dieses Themas? für die andere Instanz Ihrer Frage

Andere Tipps

Ich habe keine bestimmte Antwort auf Ihre Frage. Ich möchte nur sicherstellen, dass Sie die ~ 25MB Grenze RAM für Ihre App bewusst sind. Ich kann nicht auf diese geben Links, denn auch wenn Apple die Grenze kennt, sind sie nicht zu sagen.

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