滚动时获取第一个 Cell/Item UICollectionView - iOS

Getting first Cell/Item of UICollectionView while scrolling - iOS

我有一个有 1 行 1 列的 UICollectionView。当我水平滚动它时,我想获得第一个项目(indexPath 基本上)。

例如,我的 UICollectionView 中水平显示了 100 个项目,当我从右向左滚动时,无论哪个项目是第一个可见的,我都需要它 indexPath。 这意味着 indexPath 将在滚动时不断变化。

如何实现?请指导。谢谢!

我认为您需要实施 UIScrollView 委托方法并在其中获取可见单元格

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    UICollectionViewCell *firstCell = [[collectionView visibleCells] firstObject];
    NSIndexPath *firstIndexPath = [collectionView indexPathForCell: firstCell];
    NSLog(@"%@", firstIndexPath);
}

希望对您有所帮助

collectionView.indexPathsForVisibleItems() returns 可见单元格的 NSIndexPath 数组。您可以通过按 NSIndexPath.item.

对它们进行排序来获得最左边的一个

Edti: 要在滚动时收到通知,请实施 UIScrollViewDelegate 方法 scrollViewDidScroll(_: UIScrollView)。请记住 UICollectionViewUIScrollView.

的子类