【问题标题】:Getting first Cell/Item of UICollectionView while scrolling - iOS滚动时获取 UICollectionView 的第一个单元格/项目 - iOS
【发布时间】:2016-11-20 16:07:20
【问题描述】:

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

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

如何做到这一点?请指导。谢谢!

【问题讨论】:

    标签: ios objective-c scroll uicollectionview nsindexpath


    【解决方案1】:

    collectionView.indexPathsForVisibleItems() 返回可见单元格的NSIndexPath 数组。你可以通过NSIndexPath.item排序得到最左边的。

    艾迪: 要在滚动时收到通知,请实现 UIScrollViewDelegate 方法 scrollViewDidScroll(_: UIScrollView)。请记住,UICollectionViewUIScrollView 的子类。

    【讨论】:

    • 我知道这个方法,但是滚动时哪个方法会实际运行?这就是我需要知道的。
    • 谢谢!这就是我要找的方法!
    【解决方案2】:

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

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

    希望有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多