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

时间:2016-07-18 06:44:32

标签: ios objective-c scroll uicollectionview nsindexpath

我有UICollectionView,第1行1列。我想在水平滚动时得到第一个项目(indexPath)。

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

如何实现这一目标?请指南。谢谢!

2 个答案:

答案 0 :(得分:2)

我认为您需要实现UIScrollView委托方法并在

中获取可见单元格
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    UICollectionViewCell *firstCell = [[collectionView visibleCells] firstObject];
    NSIndexPath *firstIndexPath = [collectionView indexPathForCell: firstCell];
    NSLog(@"%@", firstIndexPath);
}

希望这个帮助

答案 1 :(得分:1)

collectionView.indexPathsForVisibleItems()为可见单元格返回NSIndexPath数组。您可以通过NSIndexPath.item对其进行排序来获得最左边的一个。

<强> Edti : 要在滚动时收到通知,请实施UIScrollViewDelegate方法scrollViewDidScroll(_: UIScrollView)。请记住,UICollectionViewUIScrollView的子类。