Wie Sie UICollectionView contentSize.die Höhe basiert auf der Anzahl der Zeilen in swift

Ich würde mich wirklich freuen, wenn jemand Licht einige Ideen hier. Ich habe versucht, dies zu beheben für mehrere Wochen (kein Witz).

Habe ich eine "to-do-Liste" mit einem collectionView, wo ich das ausblenden der Zeilen, die abgeschlossen wurden, und verschieben Sie Sie an das Ende der Liste. Ich habe dann einblenden der Elemente, wenn erforderlich, mit einem Knopf. Der collectionView sieht genau wie ein tableView mit ein Element(Zelle) pro Zeile.

Wenn die Elemente ausgeblendet werden, die collectionView hat eine Menge von leeren Blättern Platz unten statt "automatisch" löschen des Speicherplatzes, der von den versteckten Zeilen, da Sie technisch noch vorhanden sind.

Ich versuche zu schneiden, dass der leere Raum also, der collectionView die Höhe ist gleich der Anzahl von Zellen/Zeilen sichtbar gelassen.

override func viewDidAppear(animated: Bool) {

if isCellHidden { //checking if cells are hidden 
var heightOfSection0 = 95 + (42 * self.collectionView.numberOfItemsInSection(0))
println(self.collectionView.contentSize.heigh) //returns 2350
self.collectionView.contentSize.height = CGFloat(heightOfSection0)
println(heightOfSection0) //returns 1019
println(self.collectionView.contentSize.heigh) //returns 1019.0 which is correct but as soon as I scroll down it resets to it's original size (2350) and let's me scroll through that empty space...
}}

Wenn ich versuche zu Lesen, die collectionView Höhe sofort nach dem einstellen dieser, es zeigt den richtigen Wert, aber sobald ich versuche zu scrollen, er setzt zurück zu seiner ursprünglichen Höhe. Ich habe auch versucht, das deaktivieren der auto-layout, und es sieht nicht einen Unterschied machen

  • Versuchen Sie die Größe in sizeForItemAtIndexPath
Schreibe einen Kommentar