ios6 uicollectionview nsindexpath

ios6 - ¿Hay alguna forma de desplazarse automáticamente hacia la parte inferior de UICollectionView?



nsindexpath (3)

Simplemente puede preguntar a su fuente de datos:

NSInteger section = [self numberOfSectionsInCollectionView:self.collectionView] - 1; NSInteger item = [self collectionView:self.collectionView numberOfItemsInSection:section] - 1; NSIndexPath *lastIndexPath = [NSIndexPath indexPathForItem:item inSection:section];

Por lo tanto, actualmente estoy trabajando en un proyecto que tiene un botón que agrega celdas a UICollectionView y luego necesita desplazarse automáticamente a la última celda (es decir, la parte inferior de UICollectionView).

He encontrado el método scrollToItemAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UICollectionViewScrollPosition)scrollPosition animated:(BOOL)animated

Pero ahora me estoy atascado al tratar de encontrar el indexPath del último objeto en el CollectionView.

El problema parece residir en que he tratado de pensar en las celdas de UICollectionView como una matriz (no puedo enumerarlas a través de ellas, no responde a lastObject etc.). Lo más parecido que puedo parecer es el método visibleItems que me proporciona una matriz pero no ayuda cuando necesito celdas que se agregan fuera del marco visible.

¿Hay alguna manera de obtener IndexPath para ese último objeto en CollectionView?


Aquí está su respuesta ... Si no quiere preguntar por el origen de datos.

viewDidAppear: en su método viewDidAppear:

NSInteger section = [_collectionView numberOfSections] - 1 ; NSInteger item = [_collectionView numberOfItemsInSection:section] - 1 ; NSIndexPath *lastIndexPath = [NSIndexPath indexPathForItem:item inSection:section] ; [_collectionView scrollToItemAtIndexPath:lastIndexPath atScrollPosition:(UICollectionViewScrollPositionBottom) animated:YES];


Para Swift 3 , suponiendo que solo tiene una sección:

let section = 0 let item = collectionView.numberOfItems(inSection: section) - 1 let lastIndexPath = IndexPath(item: item, section: section) collectionView.scrollToItem(at: lastIndexPath, at: .bottom, animated: false)