Sortiert Fotos genau wie native Photoapps mit PhotoKit

8

Ich versuche, den nativen iOS8-Fotopicker mit dem Photos-Framework zu reproduzieren. Ich habe ein Problem mit der Sortierung.

Sagen wir, ich mache folgendes:

  1. Ich bearbeite ein Foto in Camera + und speichere es in der Galerie.
  2. Ich bevorzuge ein anderes Foto.

Im nativen Fotopicker:

  • Alle Fotos (auch die eine) werden nach creationDate
  • sortiert
  • Das Foto, das ich bearbeitet und gespeichert habe, ist unten, da es das letzte war, das ich geändert habe. Das Original wird gemäß dem Erstellungsdatum an seinem ursprünglichen Ort sein.

In meiner App mache ich folgendes:

%Vor%

Ich sortiere in creationDate und bekomme folgendes Ergebnis:

  • Alle Fotos (auch die eine) werden nach creationDate
  • sortiert
  • Das Foto, das ich bearbeitet habe, wird unmittelbar nach seinem ursprünglichen Erstellungsdatum angezeigt.

Dann ändere ich meine Abfrage, anstatt nach creationDate zu sortieren, sortiere ich nach modificationDate . Ich bekomme folgendes Ergebnis:

  • Alle Fotos sind im Allgemeinen fast gleich wie creationDate
  • Das Foto, das ich bearbeitet habe, wird unten sein. Das ist was ich will und mag in der nativen App.
  • Das Foto wird auch unten angezeigt: - (

So sieht es aus, dass Apple modificationDate bei der Lieblingsaktion und wahrscheinlich auch bei anderen Aktionen ändert und dadurch die Sortierung der Fotos durcheinander bringt.

Wie ist es möglich, genau die Sortierung von Apple in seiner nativen App zu bekommen? Vielleicht eine kluge Verwendung von NSSortDescriptor ?

    
knutigro 29.07.2015, 09:40
quelle

4 Antworten

4

Ich habe gerade herausgefunden, dass zum Kopieren des genauen Verhaltens des nativen Fotopickers die Lösung darin bestand, meine benutzerdefinierte sortDescriptior zu entfernen und einfach das PHFetchResult mit Standardverhalten zu verwenden. Es erscheint so offensichtlich, nachdem ich das entdeckt habe.

    
knutigro 29.07.2015, 11:22
quelle
4

swift 3

%Vor%     
Felecia Genet 27.04.2017 03:50
quelle
4

Wie @knutigro erwähnt, besteht die Lösung darin, PHFetchResult mit den Standardoptionen zu verwenden, d. h. durch Übergabe von nil für den Parameter options :

%Vor%

Aber der nächste Schritt ist das Umkehren der Sortierergebnisse, so dass das neueste Bild zuerst angezeigt wird. Es gibt keine einfache Möglichkeit, die Ergebnisse in PHFetchResult umzukehren, also habe ich die folgende Methode verwendet:

%Vor%     
Jawwad 22.09.2016 17:32
quelle
2

Sie können versuchen, zwei Sortierdeskriptoren zu verwenden:

%Vor%

Habe nicht getestet, dachte nur, es könnte funktionieren.

    
Tushar 29.07.2015 09:50
quelle

Tags und Links