iOS 自定义CollectionFlowLayout

1,建立 .h文件

#import <UIKit/UIKit.h>

@interface AKCustomerFlowLayout : UICollectionViewFlowLayout

@end

2,实现文件 .m


#import "AKCustomerFlowLayout.h"

@implementation AKCustomerFlowLayout

- (NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect{
    
    NSArray *attributesArray = [super layoutAttributesForElementsInRect:rect];
    for (int i = 1;i<[attributesArray count];i++){
        
        UICollectionViewLayoutAttributes *currentFrame = attributesArray[i];
        UICollectionViewLayoutAttributes *preFrame = attributesArray[i-1];
        
        CGFloat mimSpace = 1.0;
        CGFloat originX = CGRectGetMaxX(preFrame.frame);
        CGFloat originY = CGRectGetMaxY(preFrame.frame);
        
        if (originX + mimSpace + currentFrame.frame.size.width <= self.collectionViewContentSize.width){
            
            CGRect frame = currentFrame.frame;
            frame.origin.x = originX + mimSpace;
            frame.origin.y = preFrame.frame.origin.y;
            currentFrame.frame = frame;
        }else{
            
            CGRect frame = currentFrame.frame;
            frame.origin.y = originY + mimSpace;
            currentFrame.frame = frame;
        }
        
        

    }
    
    return attributesArray;
}



@end

3,将自定义的flowlayout添加至collectionView

AKCustomerFlowLayout *layout = [AKCustomerFlowLayout alloc]init];
UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:self.view.bounds CollectionViewLayout:layout];

 

转载于:https://my.oschina.net/Kuture/blog/747930

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值