Animieren UICollectionView auf die Ausrichtung ändert
Betrachten UICollectionViewdass eine unterschiedliche Anzahl von Elemente und ein anderes layout (sprich: Abstand) auf Landschafts-und portrait-Ausrichtung.
Was muss getan werden, damit diese änderungen werden animiert, wenn das Gerät gedreht wird? Ich konnte nicht finden jede Erwähnung Umgang mit Rotationen auf der Collection View Programming Guide.
InformationsquelleAutor der Frage hpique | 2012-11-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht notwendig, um neu zu laden Sie die Sammlung anzeigen der Daten — Aufruf
[collectionView.collectionViewLayout invalidateLayout]
verursacht der Ansicht Sammlung zu aktualisieren, das layout.Überschreiben
shouldInvalidateLayoutForBoundsChange:
zurück JA in einem UICollectionViewLayout Unterklasse führtinvalidateLayout
wird automatisch aufgerufen, wenn der collection view die Grenzen ändern (auch wenn sich seine Größe ändert, und wenn der Benutzer scrollt Inhalt).InformationsquelleAutor der Antwort titaniumdecoy
Hatte ich andere Anzahl von Abschnitten auf der Grundlage der Orientierung, und die auto-rotation nicht ändern. Ich hatte, um einen Aufruf an die collectionView, um die Daten neu laden. Ich bin mit einem UICollectionViewController, anpassen, um Ihre eigene Sammlung view-Eigenschaft, wenn Sie etwas anderes:
InformationsquelleAutor der Antwort christophercotton
Der Schnellste Weg ist es eine Mischung aus allen anderen Antworten.
fügen Sie einfach die folgenden Zeilen in Ihrer ViewController :
Brauchen Sie nicht zu reloadData.
InformationsquelleAutor der Antwort CZ54
Ich verwendet die folgenden einfachen code in Swift:
InformationsquelleAutor der Antwort Antoine
Ich bin mit diesem Ansatz, wenn Sie nur wollen, etwas zu tun, bei einer Drehung Veranstaltung:
und dann überschreiben Sie die Methode aus
UICollectionViewDelegateFlowLayout
mit dem gewünschten Verhalten in Landschaft und Porträt oder in Abhängigkeit von der Breite zum Beispiel.
Können Sie auch speichern vorherigen Ausrichtung und überprüfen Sie, ob es geändert, um zu entscheiden, ob ungültig layout oder nicht.
Dies wird aktualisiert, Größen, auch wenn Sie wieder zu kommen in einem navigation controller.
InformationsquelleAutor der Antwort Juanma Reyes