NSCollectionView mit Abschnitten - wie in iPhoto

9

Ich möchte eine NSCollectionView erstellen, die der in iPhoto '11 ähnelt. Ich möchte mehrere Bilder im Schnitt gruppieren und auch einen Abschnittskopf erstellen. Der Abschnittskopf eines bestimmten Abschnitts ist immer sichtbar, bis das letzte Element dieses Abschnitts sichtbar ist. Sie können sich das Bild ansehen, um zu sehen, was ich meine.

EDIT: Ich sollte hinzufügen, dass die Inhalte keine Bilder sind.

Vielen Dank im Voraus

    
burki 20.03.2011, 17:21
quelle

2 Antworten

2

Sie werden wahrscheinlich CALayers direkt verwenden müssen. NSCollectionView bekommt den größten Teil seiner Magie von CoreAnimation IIRC, und es sieht so aus, als ob du einiges davon kopieren musst. Alternativ können Sie auch verschachtelte Auflistungsansichten verwenden, von denen eines Gruppen enthält. Anschließend enthält jede Gruppe eine andere Auflistungsansicht einzelner Elemente.

Wie auch immer, Ihre Ansichts- / Ebenenhierarchie wird gleich sein. Sie haben einen Container auf oberster Ebene, der nur eine Spalte hat (da sich die Gruppen über die gesamte Breite erstrecken), dann hat jedes Element in diesem eine beliebige Anzahl von Spalten basierend auf der Elementbreite. d. h., Ihre Sammlungsansichtsobjekte der Gruppe werden so gestreckt, dass sie die Breite füllen, aber Ihre einzelnen Elemente in diesen Gruppen nicht.

Wenn Sie sich für die Methode root CALayer entscheiden, sollten Sie sich CAConstraintLayoutManager ansehen. Dies bietet die Magie in NSCollectionView . Ein guter Ort, um Informationen darüber zu suchen ist Bill Dudneys CoreAnimation Buch von Pragmatic Programmers . Bill ist jetzt der offizielle Plattform-Evangelist für Apple, also denke ich, es ist sicher zu sagen, dass er weiß, wovon er da spricht.

Insgesamt würde ich vorschlagen, einen verschachtelten NSCollectionView -Ansatz zu verwenden, um mit roher CoreAnimation nur dann herunterzufallen, wenn Leistung zu fehlen scheint, oder wenn Sie Probleme haben, etwas zur Arbeit zu bringen. Wenn Sie NSCollectionView verwenden, können Sie Ihre gesamte aktuelle NSView -ness beibehalten, so dass weniger Arbeit entsteht. Wenn es in Ordnung ist, dann bist du zu Hause & amp; trocken. Wenn nicht, haben Sie etwas anderes zu versuchen, das Sie nach Herzenslust optimieren können.

    
Jim Dovey 20.03.2011, 19:36
quelle
-3

Hier ist ein ähnliches Beispiel:

Überprüfen Sie dies: Ссылка

    
kilik52 16.04.2014 10:30
quelle