一、基本方法
1、- (CGSize)collectionViewContentSize
2、- (BOOL)shouldInvalidateLayoutForBoundsChange:
3、- ( UICollectionViewLayoutAttributes* )layoutAttributesForItemAtIndexPath:
4、- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect
5、 - (UICollectionViewLayoutAttributes *)layoutAttributesForDecorationViewOfKind:
(if your layout supports supplementary views)
6、 - (UICollectionViewLayoutAttributes *)layoutAttributesForSupplementaryViewOfKind: atIndexPath:(NSIndexPath *)indexPath
(if your layout supports decoration views)
如果您的布局不支持补充视图或装饰视图,则不要实现相应的方法。因此最基本的自定义布局必须实现1、2、3、4这四个方法
#import "HLTFlowlayout.h"
@implementation HLTFlowlayout
/**
在一定区域内返回item的布局属性。可以一次性返回所有cell尺寸,也可以每隔一个距离返回cell
**/
- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect{
return nil;
}
/**
返回indexPath位置cell对应的布局属性,这个方法系统是不会主动调用的。不实现这个感觉也可以,但苹果建议子类必须重写这个方法。
**/
- ( UICollectionViewLayoutAttributes* )layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath{
return nil;
}
// 在滚动的时候是否允许刷新布局
- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds{
return NO;
}
// 确定collectionView滚动范围
- (CGSize)collectionViewContentSize{
return CGSizeMake(1600, 0);
}
@end
网友评论