UICollectionViewLayout自定义布局学习(一)

2020-04-20  本文已影响0人  冷武橘

一、基本方法

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
上一篇下一篇

猜你喜欢

热点阅读