Wie kann die IOS Photos App Hunderte von Fotos auf einem Bildschirm anzeigen?

8

Ich arbeite an einer Anwendung, die darauf basiert, viele Fotos auf dem Bildschirm aus mehreren Quellen zu zeigen.

Ich frage mich, wie könnte Apple diese "Foto-Kachel" -Ansicht in ihrer Foto-App erstellen? Mit so vielen Fotos sollte die App meiner Meinung nach eine Speicherwarnung mit weniger Fotos (auch wenn ich Fotos in "Miniaturbildgröße" einlege) auf einmal anzeigen, aber ich kann sehen, dass es Hunderte von Fotos auf einem Bildschirm zeigen kann, wenn ich zoome aus.

Eine Möglichkeit, an die ich denken kann, ist, dass diese Ansichten keine einzelnen Fotos sind, sondern einzelne "gekachelte" Bilder, die von Fotos in Echtzeit erzeugt werden, sodass die App nur 2-3 Fotos gleichzeitig zeigt. Aber das braucht immer noch viel CPU-Power und Zeit um so schnell zu generieren. Ich kann sofort hinein- oder herauszoomen.

Ich möchte ähnliche Funktionen in meiner App erreichen, alle Anweisungen dazu wären großartig.

Danke für die Antworten.

    
dreampowder 10.10.2014, 10:57
quelle

2 Antworten

10

Ich habe einige Nachforschungen angestellt und festgestellt, dass IOS8 ein wunderbares neues Framework mit dem Namen "Photos Framework" hat

Mit diesem Framework können Sie Bilder einfach zwischenspeichern, Miniaturbilder mit vordefinierten Größen aufrufen und Elemente laden. (Die alte ALAsset-Bibliothek hatte nur eine "Thumbnail" -Größe, die Größe musste geändert werden.)

auf meinem Test ein Bildschirm voller 20x20 Fotos (mein Handy Bildschirminhalt 384 Bilder), App nur 10 MB Speicher und fast kein Flackern beim Scrollen. Smooth Scrolling kann durch optimiertes Nachladen der Zellen erreicht werden.

Hier ist der Code, mit dem ich Bilder in eine uicollectionview mit 20x20 Artikelgröße geladen habe:

%Vor%

in viewDidLoad:

%Vor%

und Datensammelmethoden der Sammlungsansicht:

%Vor%

Das ist es!

    
dreampowder 10.10.2014, 14:45
quelle
1

Apple ist ein Beispiel für die Verwendung von PHCachingImageManager. Es ist viel besser, da es auch Text vorwärmt, so dass es korrekte Ressourcen zwischenspeichert. Bitte schaue es dir an Ссылка Sorry für schlechte Formatierung, hoffe es hilft

    
Lonkly 30.06.2015 00:16
quelle