Kurz gesagt, mein gewünschtes Bildschirmlayout ist im Grunde ein Benutzerprofil (iOS 7 + Xcode 5). Ich habe UIScrollView als oberste Ansicht verwendet. Der Grund ist, dass ich möchte, dass alle Unteransichten scrollen (Benutzerinfo-Ansicht - die Ansicht mit einem Profilbild und einigen Schaltflächen auf dem Bildschirm und die Fotosammlungsansicht - die mit schwarzen Hintergrund), wenn es gescrollt wird.
Die Region mit schwarzem Hintergrund zeigt Benutzerfotos. Ich frage mich, ob ich hier eine UICollectionView verwenden könnte, oder es gibt eine bessere Möglichkeit, sie zu implementieren. Die UICollectionView sollte in diesem Fall nicht in der Lage sein, selbst zu scrollen, sie zeigt nur alle Zellen an, während die Scroll-Arbeit von der äußersten UIScrollView behandelt wird.
Ich habe folgende Beiträge gelesen:
UICollectionView in UIScrollView
UICollectionView in UIScrollView - & gt; Scrollreihenfolge
iOS 7-Sammlung In der Bildlaufansicht anzeigen
Einige sagten, dass es nicht möglich (oder zumindest seltsam) ist, UICollectionView in UIScrollView zu implementieren, weil UIScrollView die Superklasse von UICollectionView ist, die zu unerwartetem Verhalten führt. Einige sagten, es sollte auf andere Weise umgesetzt werden (aber ich sah keinen klaren Vorschlag).
Ja, Sie können ein UICollectionView
in ein UIScrollView
setzen. iOS hat seit iOS 3.0 vollständig geschachtelte Scroll-Ansichten unterstützt und UICollectionView
ist eine Unterklasse von UIScrollView
. Sehen Sie sich zum Beispiel die App App App auf Ihrem iOS-Gerät an. Der Bildschirm scrollt vertikal - es ist entweder ein UIScrollView
oder ein UITableView
(was selbst eine Unterklasse von UIScrollView
ist). Und jede Reihe von Symbolen scrollt horizontal - jede Zeile ist ein UICollectionView
.
Es ist jedoch nicht klar, warum Sie eine Sammlungsansicht in eine Bildlaufansicht einfügen müssen. Es klingt so, als ob Sie nur die Fotosansicht scrollen möchten. Machen Sie also die Fotosansicht zu einer Sammlungsansicht. Warum müssen Sie die Sammlungsansicht in eine Bildlaufansicht einfügen?
Verwenden Sie einfach eine Sammlungsansicht. Setzen Sie die Kopfzeile von Abschnitt 0 auf die Profildatenansicht. Sie benötigen keine Bildlaufansicht.
Wenn Sie alle Fotos in einem Abschnitt ablegen, können Sie die Kopfzeile in Ihrem Storyboard ohne Code einrichten. Wenn Sie mehrere Abschnitte verwenden, müssen Sie collectionView:layout:referenceSizeForHeaderInSection:
in Ihrem Delegaten und collectionView:viewForSupplementaryElementOfKind:atIndexPath:
in Ihrer Datenquelle implementieren.
Tags und Links ios uicollectionview ios7 uiscrollview