效果圖,變量多基于隨機數(shù)
CollectionView瀑布流.gif
需實現(xiàn)方法:
#import <UIKit/UIKit.h>
@class CWCollectionViewLayout;
@protocol CWCollectionViewLayoutDelegate <NSObject>
@required
/** item的size娜遵,為了避免storyboard默認的寬度1000壤短,這里size的寬度是根據(jù)列數(shù)計算的(collectionView的寬度-邊緣間距(UIEdgeInsets.left+UIEdgeInsets.right)-(列數(shù)-1)*列間距),列數(shù)默認是2纳胧,所有間距默認都是10*/
- (CGSize)collectionViewLayout:(CWCollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath;
@optional
/** 列數(shù)*/
- (CGFloat)columnCountInCollectionViewLayout:(CWCollectionViewLayout *)collectionViewLayout;
/** 列間距*/
- (CGFloat)columnMarginInCollectionViewLayout:(CWCollectionViewLayout *)collectionViewLayout;
/** 行間距*/
- (CGFloat)rowMarginInCollectionViewLayout:(CWCollectionViewLayout *)collectionViewLayout;
/** view邊緣間距*/
- (UIEdgeInsets)edgeInsetsInWaterflowLayout:(CWCollectionViewLayout *)collectionViewLayout;
/** 更新(加載)item,是否改變Collection的高度*/
- (BOOL)updateViewFrameInWaterflowLayout:(CWCollectionViewLayout *)collectionViewLayout;
@end
@interface CWCollectionViewLayout : UICollectionViewLayout
@property (nonatomic, weak) id<CWCollectionViewLayoutDelegate> layoutDelegate;
@end
Demo地址:https://github.com/CyanSmile/CWCollectionViewWaterfallFlow.git