框架地址:https://github.com/chiahsien/CHTCollectionViewWaterfallLayout

实现思路:

1、创建布局对象;

2、设置布局属性;

3、根据创建的布局,创建UICollectionView;

4、遵守协议  CHTCollectionViewDelegateWaterfallLayout,实现方法

1 #pragma mark - CHTCollectionViewDelegateWaterfallLayout
2 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
3   return [self.cellSizes[indexPath.item % 4] CGSizeValue];
4 }
// 需要注意的是,要想实现瀑布流效果必须保证各个图片宽高比例不同,大小无所谓,它会自己根据你设置的列数等属性进行缩放
- (NSArray *)cellSizes {
  if (!_cellSizes) {
    _cellSizes = @[
      [NSValue valueWithCGSize:CGSizeMake(400, 550)],
      [NSValue valueWithCGSize:CGSizeMake(1000, 665)],
      [NSValue valueWithCGSize:CGSizeMake(1024, 689)],
      [NSValue valueWithCGSize:CGSizeMake(640, 427)]
    ];
  }
  return _cellSizes;
}