2013-10-04 9 views
9

Ich beginne meine Entwicklung einer iOS-App mit ios 6 und UICollectionView. Ich habe festgestellt, dass es sowohl ergänzende Ansichten als auch dekorative Ansichten gibt.UIcollectionview Dekoration Ansicht VS ergänzende Ansicht

Kann jemand bitte in Aufzählungszeichen den Unterschied zwischen den beiden erklären? Sie klingen sehr ähnlich.

Wenn ich einen Loader zu meiner Sammlungsansicht hinzufügen möchte (die am Ende jedes Abschnitts angezeigt wird, während der Abschnitt geladen wird), sollte es eine zusätzliche Ansicht oder eine Dekorationsansicht sein?

Dank

Antwort

28

Dekoration Ansichten sind, was nur der Name schon sagt: Dekoration, Chrom. Nur das Layout der Sammlungsansicht entscheidet darüber, was sie sind und wo sie abgelegt werden sollen (wenn Sie z. B. alle 5 Elemente auf dem Bildschirm zeichnen möchten).

Zusätzliche Ansichten haben mehr mit Ihren Daten zu tun. Das Layout der Sammlungsansicht bestimmt immer noch, wo sie abgelegt werden sollen. Sie werden jedoch wie normale Zellen von der Datenquelle der Sammlungsansicht bereitgestellt. Wenn Sie beispielsweise Titel für Abschnitte einfügen möchten, würden Sie zusätzliche Ansichten verwenden, da der Titel für jeden Abschnitt unterschiedlich ist und Sie die Datenquelle für jeden Abschnitt aufrufen müssen.

Wenn Ihr Loader generisch ist, könnte es eine Dekorationsansicht sein, dekorationsansichten sind jedoch nicht wirklich zugänglich (das Layout-Objekt gibt an, wo sie platziert werden sollen), und sie werden nie erstellt ein Verweis auf sie), also, wenn Sie anfangen möchten, es zu animieren, ist eine Dekorationsansicht nicht die beste Wahl. Wenn Sie eine Zusatzansicht verwenden, haben Sie zum Zeitpunkt der Erstellung (in Ihrer Datenquelle collectionView:viewForSupplementaryElementOfKind:atIndexPath: Methode) Zugriff darauf. Sie können die Sammlungsansicht jedoch nur für reguläre Datenzellen abfragen, sobald sie auf dem Bildschirm angezeigt werden. Außerdem müssen Sie Ihre eigene UICollectionViewLayout Klasse schreiben, wenn Sie individuelle Dekoration oder ergänzende Ansichten verwenden möchten. Die Basis UICollectionViewFlowLayout bietet nur eine Fußzeile und eine zusätzliche Kopfzeile.

+0

Ich war verwirrt über den Unterschied, bis ich Folgendes bemerkte: für zusätzliche Ansichten, rufen Sie eine der 'Register' Methoden in der Sammlung anzeigen (oder im Storyboard registrieren). Für Dekorationsansichten verwenden Sie eine der 'Register'-Methoden für das Layout-Objekt. – RyanM

Verwandte Themen