我正在研究项目,它有多个图像显示在网络数据的集合视图中。
我已经实现了WaterFlowLayout集合视图开源Github项目 https://github.com/aceisScope/WaterflowView
图像动态分配到集合视图图像数组..
如果集合视图源的图像数为3或更多,则工作正常。
但是如果显示的图像数小于3,则显示在集合视图中不显示。 在演示项目中也发生了相同的事情..
我已经实现了拉动刷新的另外一件事但是在中并且几乎12个图像可以在单页中显示,如果图像计数超过13而不是集合默认滚动工作正常并且我能够拉动刷新但是如果图像count小于12比我无法访问pull to refresh colletion视图。
如果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;
}
并且任何人都可以建议一些技巧来启用pull刷新,即使排序规则视图默认滚动不活动..
提前致谢...
答案 0 :(得分:4)
您可以考虑跳过WaterFlowLayout存储库,只改为使用UICollectionView:
要开始使用UICollectionView,请查看Bryan Hansen撰写的this excellent tutorial。它会让你熟悉UICollectionView。
如果您正在使用UICollectionView,则可以使用UICollectionViewController
viewDidLoad
方法中的几行代码添加一个pull-to-refresh控件:
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(startRefresh:) forControlEvents:UIControlEventValueChanged];
[self.collectionView addSubview:refreshControl];
要实现Pinterest风格的瀑布布局,您可以使用此UICollectionViewLayout github存储库或其他任何数量的其他存储库:https://github.com/jayslu/JSPintDemo