UICollectionViewFlowLayout自定义

写一个我们自己的类继承UICollectionViewFlowLayout。然后需要实现四个方法

-(CGSize)collectionViewContentSize

{

CGFloat height=  ceil([[self collectionView]  numberOfItemsInSection:0]/5)*SCREEN_WIDTH/2;

return  CGSizeMake(SCREEN_WIDTH, height);

}//返回contentsize的总大小

//自定义布局必须YES

-(BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds

{

return YES;

}


- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)path{}//返回每个cell的布局属性


-(NSArray*)layoutAttributesForElementsInRect:(CGRect)rect

{

NSArray *array = [super layoutAttributesForElementsInRect:rect];

NSMutableArray* attributes = [NSMutableArray array];

for (NSInteger i=0 ; i < [array count]; i++) {

NSIndexPath* indexPath = [NSIndexPath indexPathForItem:i inSection:0];

[attributes addObject:[self layoutAttributesForItemAtIndexPath:indexPath]];

}

return attributes;

}//返回所有cell的布局属性

效果图

你可能感兴趣的:(UICollectionViewFlowLayout自定义)