如何检测滚动到水平UICollectionView的末端

mag*_*gix 5 objective-c ios uicollectionview

您知道一种方法来检测用户何时滚动到UICollectionView的末尾(或开始)(以便加载新内容)。由于UICollectionView是水平滚动而不是垂直滚动,因此我对滚动到顶部/底部而不是最左侧/最右侧不感兴趣。

到目前为止,我发现的唯一方法是将UICollectionView子类化,然后将视图控制器注册为一个委托,该委托将通知何时收集视图 willLayoutSubviews并相应地执行计算。

但是,让我们说我不想继承UICollectionView,有没有一种方法可以检测到UICollectionView的结束/开始滚动?

编辑:由于UICollectionView继承自UIScrollView,所以我可以使用其委托方法。水平滚动如何使用?

谢谢

li2*_*li2 5

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat offsetX = scrollView.contentOffset.x;
    CGFloat contentWidth = scrollView.frame.size.width;

    NSLog(@"offset X %.0f", offsetX);
    // If your UICollectionView has 3 cell, the contentWidth is 320,
    // When you scroll from beginning to end of the UICollectionView, it will print:
    // offset X 0
    // offset X 1
    // offset X 2
    // ......
    // offset X 320
    // offset X 640
}
Run Code Online (Sandbox Code Playgroud)