如何在 UICollectionView 中循环一组单元格?

Posted

技术标签:

【中文标题】如何在 UICollectionView 中循环一组单元格?【英文标题】:How to looping a set of cells in UICollectionView? 【发布时间】:2014-10-31 08:20:45 【问题描述】:

我不知道这个主题之前是否问过,但在问这个简单的问题之前我做了一些搜索,比如“UICollectionView 循环单元”“UIColloectionView 无限循环”。

如果帖子重复,我很抱歉......

我的应用程序中有一个水平集合视图作为滑块,将显示 5 个图像,当用户滚动到末尾(第五个项目)并向右滑动并移动到第一个单元格时,如何设置功能?另外,如果用户滚动第一项并向左滑动,它会显示第五项吗?谢谢。

SDK:ios 7

非常感谢~

【问题讨论】:

看看this question - 它会处理向前滚动,虽然可能不是向后滚动(虽然应该不难) 【参考方案1】:

我写了一个愚蠢的程序来控制它

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

    CGFloat pageWidth = _sliderCV.frame.size.width;
    self.pageControl.currentPage = _sliderCV.contentOffset.x / pageWidth;
    NSLog(@"%f", _sliderCV.contentOffset.x);

    CGFloat firstSlide = 0.f;
    CGFloat lastSlide = pageWidth * 4;

    NSLog(@"contentOffset = %f, firstSlide = %f, SelFirstCount = %li",_sliderCV.contentOffset.x, firstSlide, (long)selFirstCount);
    if (_sliderCV.contentOffset.x == firstSlide) 
        if (selFirstCount == 0) 
            selFirstCount += 1 ;
            NSLog(@"%li", (long)selFirstCount);
         else 
            NSLog(@"Move to Last");
            [_sliderCV setContentOffset:CGPointMake(lastSlide, 0) animated:YES];
            selFirstCount = 0;
            self.pageControl.currentPage = 4;
            selLastCount = 1;
        
     else if (_sliderCV.contentOffset.x == lastSlide) 
        if (selLastCount == 0) 
            selLastCount += 1;
         else 
            [_sliderCV setContentOffset:CGPointMake(firstSlide,0) animated:YES];
            selLastCount = 0;
            self.pageControl.currentPage = 0;
            selFirstCount = 1;
        
     else 
        NSLog(@"Clear");
        selFirstCount = 0;
        selLastCount = 0;
    

【讨论】:

以上是关于如何在 UICollectionView 中循环一组单元格?的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView 作为 UITableView 子视图流布局循环

为啥我的 UICollectionView 无法访问我在 for 循环中创建的数组 - 致命错误:索引超出范围

如何在 UICollectionViewCell 中添加 UICollectionView?

如何在 UICollectionView 中快速添加分页?

如何使用 UIViewControllerRepresentable 在 SwiftUI 中呈现 UICollectionView

如何在 UICollectionview 中显示前 9 张图像?