如何检测横向UICollectionView滚动到底部

5
你知道如何检测用户滚动到UICollectionView的末尾(或开头)以加载新内容吗?由于UICollectionView是水平滚动而不是垂直滚动,因此我不关心向上/向下滚动,而是左侧/右侧滚动。
目前我找到的唯一方法是子类化UICollectionView,然后将视图控制器注册为委托,当集合视图willLayoutSubviews时通知委托并进行相应计算。但是假设我不想子类化UICollectionView,是否有检测UICollectionView滚动到末尾/开头的方法?
编辑:由于UICollectionView继承自UIScrollView,我可以使用其委托方法。它在水平滚动中如何工作呢?
谢谢!
2个回答

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
}

2
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if ([scrollView isKindOfClass:[UICollectionView class]] == YES) {
        CGFloat threshold = 100.0 ;
        CGFloat contentOffset = scrollView.contentOffset.x;
        CGFloat maximumOffset = scrollView.contentSize.width - scrollView.frame.size.width;
        if ((maximumOffset - contentOffset <= threshold) && (maximumOffset - contentOffset != -5.0) ){
            //Your code
        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接