Wie startet man in iOS 7 bei einer UICollectionView ganz unten? Denken Sie an die iOS-Nachrichten-App, bei der die Ansicht immer am unteren Rand (letzte Nachricht) angezeigt wird.
Das Problem besteht darin, dass wenn Sie versuchen, das contentOffset Ihrer Auflistungsansicht in viewWillAppear festzulegen, die Auflistungsansicht ihre Elemente noch nicht gerendert hat. Daher ist self.collectionView.contentSize immer noch {0,0}. Die Lösung besteht darin, das Layout der Sammlungsansicht nach der Inhaltsgröße zu fragen.
Außerdem sollten Sie sicherstellen, dass Sie den contentOffset nur dann setzen, wenn die contentSize größer als die Grenzen Ihrer Sammlungsansicht ist.
Eine vollständige Lösung sieht folgendermaßen aus:
%Vor%@awolf Deine Lösung ist gut! Aber funktionieren nicht gut mit Auto-Layout.
Sie sollten zuerst [self.view layoutIfNeeded] aufrufen. Vollständige Lösung ist:
%Vor% Aber denken Sie daran, dies nur zu tun, wenn Ihr contentSize.height
& gt; bounds.size.height
.
Wenn Sie wissen, wie viele Elemente sich in Ihrer Sammlungsansicht befinden, können Sie
verwenden scrollToItemAtIndexPath:atScrollPosition:animated:
es funktioniert perfekt für mich (automatisches Layout)
Tags und Links ios uicollectionview cocoa-touch ios7 uikit