Прежде всего, метод indexPathsForVisibleItems
не гарантирует порядок.Сначала нужно отсортировать:
let sortedIndexes = collectionView.indexPathsForVisibleItems.sorted(<)
Если вы хотите перейти к предыдущей ячейке, вам нужно сохранить предыдущую ячейку IndexPath
где-то в вашем классе:
var previousCellIndexPath: IndexPath?
Ичем вы можете перейти к этой ячейке:
func scrollToPreviousCell() {
guard let previousCellIndexPath = self.previousCellIndexPath else { return }
collectionView.scrollToItem(at: previousIndexPath, at: centeredVertically, animated: true)
}