停止滚动时获取 UICollectionView 的项目(或索引)

Posted

技术标签:

【中文标题】停止滚动时获取 UICollectionView 的项目(或索引)【英文标题】:Get Item (or index) of UICollectionView when it stops scrolling 【发布时间】:2014-07-24 14:15:38 【问题描述】:

UICollectionView 停止滚动时,是否有任何简单的方法可以获取项目或项目索引?

【问题讨论】:

“获取项目索引”是什么意思?可见项目的索引? 【参考方案1】:

这就是我如何在 UICollectionView 停止滚动时找到页面中心可用的项目。 基于this Answer.https://***.com/a/24396643/2618600

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

    NSLog(@"Finished scrolling %@",scrollView);

    if ([scrollView isKindOfClass:[UICollectionView class]])
    

        UICollectionView *mainCollection = (UICollectionView *) scrollView;


  CGRect visibleRect = (CGRect).origin = mainCollection.contentOffset, .size = mainCollection.bounds.size;
        CGPoint visiblePoint = CGPointMake(CGRectGetMidX(visibleRect), CGRectGetMidY(visibleRect));
        NSIndexPath *visibleIndexPath = [mainCollection indexPathForItemAtPoint:visiblePoint];
        NSLog(@"visibleIndexPath %ld",(long)visibleIndexPath.row);


【讨论】:

【参考方案2】:

你可以使用UICollectionView- (NSArray *)indexPathsForVisibleItems方法。

【讨论】:

以上是关于停止滚动时获取 UICollectionView 的项目(或索引)的主要内容,如果未能解决你的问题,请参考以下文章

当调用 `performUpdates(:)` 时,由 IGListKit 提供支持的 UICollectionView 停止滚动

在 UICollectionView 中重新加载数据后保持 collectionview 速度

滚动时大型 UICollectionViewCell 停止显示

UICollectionView:如何检测滚动何时停止

使 UICollectionView 始终以项目为中心停止滚动

UIScrollView 滚动问题之上的 UICollectionView