我正在使用下面的代码滚动到下一个工作正常的单元格,但是如何滚动回到上一个单元格?
let cellItems = CollectionView.indexPathsForVisibleItems
CollectionView.scrollToItem(at: cellItems.max()!, at: .centeredVertically, animated: true)
答案 0 :(得分:0)
首先,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)
}