框架地址: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; }