美文网首页
UICollectionViewLayout自定义布局学习(一)

UICollectionViewLayout自定义布局学习(一)

作者: 冷武橘 | 来源:发表于2020-04-20 09:26 被阅读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
    

    相关文章

      网友评论

          本文标题:UICollectionViewLayout自定义布局学习(一)

          本文链接:https://www.haomeiwen.com/subject/ljhlihtx.html