6

我正在开发一个项目,它在网络数据的集合视图中显示了许多图像。

我已经实现了 WaterFlowLayout 集合视图 开源 Github 项目 https://github.com/aceisScope/WaterflowView

图像动态分配给集合视图图像数组。

如果集合视图源的图像数量为 3 或更多,则工作正常。

但是,如果要显示的图像计数小于 3,则它不会显示在集合视图中。在演示项目中,它的发生也是一样的。

我还实现了拉刷新的另一件事,但在单页中可以显示近 12 个图像,如果图像计数超过 13 个,则集合默认滚动工作正常,我能够拉刷新,但如果图像计数较少比 12 比我无法访问拉刷新集合视图。

如果 numberOfItemsInSection 是 3 并且 numberOfColumnsInFlowLayout 也是 3 意味着它完成一整行而不是代码可以正常工作。

 - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
    {
        return 3;
    }

#pragma mark- UICollectionViewDatasourceFlowLayout
    - (NSInteger)numberOfColumnsInFlowLayout:(WaterFlowLayout*)flowlayout
    {
        return 3;
    }

但是如果 numberOfItemsInSection 是 2 并且 numberOfColumnsInFlowLayout 也是 3 意味着它没有完成一整行我无法显示图像。

    - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
    {
        return 2;
    }

#pragma mark- UICollectionViewDatasourceFlowLayout
    - (NSInteger)numberOfColumnsInFlowLayout:(WaterFlowLayout*)flowlayout
    {
        return 3;
    }

即使排序视图默认滚动未激活,任何人也可以提出一些技巧来启用拉动刷新..

提前致谢 ...

4

1 回答 1

4

您可能会考虑跳过 WaterFlowLayout 存储库,而只使用 UICollectionView :

  1. 要开始使用 UICollectionView,请查看 Bryan Hansen 的这篇优秀教程。它会让你熟悉 UICollectionView。

  2. 如果您使用的是 UICollectionView,您可以在您UICollectionViewControllerviewDidLoad方法中添加一个下拉刷新控件,只需几行代码:

    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
    [refreshControl addTarget:self action:@selector(startRefresh:) forControlEvents:UIControlEventValueChanged];
    [self.collectionView addSubview:refreshControl];
    
  3. 要实现 Pinterest 风格的瀑布布局,您可以使用这个 UICollectionViewLayout github 存储库,或任何数量的其他存储库:https ://github.com/jayslu/JSPintDemo

于 2012-12-20T07:35:41.253 回答