In iOS 7, da ein UICollectionView, wie Sie es am unteren Rand beginnen? Denken Sie an die App "iOS-Nachrichten", bei der die Ansicht immer sichtbar wird, wenn sie am unteren Rand angezeigt wird (letzte Nachricht).starten UICollectionView unten
Antwort
Das Problem ist, dass, wenn Sie versuchen, in viewWillAppear die Content Ihrer Sammlung Ansicht zu setzen, die Sammlung Ansicht seine Artikel noch nicht gemacht hat. Daher ist self.collectionView.contentSize immer noch {0,0}. Die Lösung besteht darin, das Layout der Sammlungsansicht für die Inhaltsgröße zu fragen.
Zusätzlich sollten Sie sicherstellen, dass Sie nur die Content gesetzt, wenn der Content größer als die Grenzen Ihrer Sammlung Ansicht ist.
Eine vollständige Lösung sieht so aus:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
CGSize contentSize = [self.collectionView.collectionViewLayout collectionViewContentSize];
if (contentSize.height > self.collectionView.bounds.size.height) {
CGPoint targetContentOffset = CGPointMake(0.0f, contentSize.height - self.collectionView.bounds.size.height);
[self.collectionView setContentOffset:targetContentOffset];
}
}
Unter der Annahme, dass Sie wissen, wie viele Elemente in Ihrer Sammlung Ansicht sind Sie
scrollToItemAtIndexPath:atScrollPosition:animated:
yourCollectionView.contentOffset = CGPointMake(0, yourCollectionView.contentSize.height - yourCollectionView.bounds.size.height);
Aber denken Sie daran dies nur tun können, wenn Ihr contentSize.height
>bounds.size.height
.
Dies funktioniert für mich, und ich denke, es ist eine moderne Art und Weise ist.
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.collectionView!.scrollToItemAtIndexPath(indexForTheLast, atScrollPosition: UICollectionViewScrollPosition.Bottom, animated: false)
}
@awolf Ihre Lösung ist gut! Aber funktionieren nicht gut mit Auto-Layout.
sollten Sie rufen [self.view layoutIfNeeded] zuerst! Voll Lösung ist:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// ---- autolayout ----
[self.view layoutIfNeeded];
CGSize contentSize = [self.collectionView.collectionViewLayout collectionViewContentSize];
if (contentSize.height > self.collectionView.bounds.size.height) {
CGPoint targetContentOffset = CGPointMake(0.0f, contentSize.height - self.collectionView.bounds.size.height);
[self.collectionView setContentOffset:targetContentOffset];
}
}
es funktioniert perfekt für mich (automatische Layout)
- berechnen Scroll Content Größe mit collectionViewFlowLayout und cellsize
- collectionView.contentSize = calculatedContentSize
- collectionView.scrollToItemAtIndexPath (whichYouWantToScrollIndexPath , atScrollPosition: ...)
- 1. ios UICollectionView Trennung auf oben/unten zwischen Zellen
- 2. UICollectionView Einstellframeanzahl
- 3. UICollectionView registerClass: forCellWithReuseIdentifier Methode bricht UICollectionView
- 4. UICollectionView: Assertion Fehler in - [UICollectionView _endItemAnimations]
- 5. Wie UICollectionView in UICollectionView hinzufügen (programmgesteuert)
- 6. UICollectionView Abschnitte vertikal laden
- 7. Black UICollectionView
- 8. UICollectionView-Zelle verschwindet
- 9. Grenze in UICollectionView festlegen
- 10. UICollectionView 2 verschiedene Hintergrundfarben
- 11. UICollectionView mit einem sticky header
- 12. Bilder in UICollectionView spiegeln sich automatisch, wenn Sie nach unten scrollen?
- 13. Bewegen Rand unten weiter unten?
- 14. UICollectionview Wiederverwenden Vorhandene Zelle
- 15. UICollectionView erscheinend Nicht
- 16. indexPath Wert von UICollectionView
- 17. UICollectionView RegisterCell - Blank Cells
- 18. UIRefreshControl mit UICollectionView in iOS7
- 19. UICollectionView Layout für jeden Abschnitt
- 20. UITableView innerhalb von UICollectionView-Berührungen.
- 21. Bild unten rechts und unten links
- 22. Kopieren Callout in UICollectionView
- 23. UICollectionView didSelectRowAtIndexPath funktioniert nicht
- 24. UICollectionView ohne Zellen wiederverwenden
- 25. iOS Assertionsfehler in UICollectionView
- 26. UICollectionView: Animation benutzerdefinierte Layout
- 27. UICollectionView horizontale kontinuierliche Schleife
- 28. Seitenwechsel in UICollectionView erkennen
- 29. UICollectionView mit Gestenerkennung
- 30. UiCollectionView in UITableViewCell
Funktioniert nicht mit dem automatischen Layout. – Chris