【ios】带分区头的九宫格模型(附源码)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dangbai01_/article/details/84940410

【pre】布局用的是SDAutoLayout,当然也可以自己调整为原生布局

一、注册表头

        [_collectionView registerClass:[EnvironmentSupervisionCollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"QCReusableView"];

二、设置宽高和复用内容

#pragma mark - UICollectionViewDelegateFlowLayoutDelegate:分区表头的设置

//size

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{

    

    CGSize size = CGSizeMake(CKScreenW, 30);

    return size;

}

//复用内容

-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath{

    

    UICollectionReusableView *reusableView = nil;

    

    if (kind == UICollectionElementKindSectionHeader) {

        

        EnvironmentSupervisionCollectionReusableView *headerView = (EnvironmentSupervisionCollectionReusableView *)[collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"QCReusableView" forIndexPath:indexPath];

        

        headerView.titleLabel.text = self.titleArr[indexPath.section];

        

        reusableView = headerView;

    }

    

    return reusableView;

}

三、自定义UICollectionReusableView的实现

.h

#import <UIKit/UIKit.h>

@interface EnvironmentSupervisionCollectionReusableView : UICollectionReusableView

@property(nonatomic,strong) UILabel *titleLabel;

@end

.m

#import "EnvironmentSupervisionCollectionReusableView.h"

@implementation EnvironmentSupervisionCollectionReusableView

-(instancetype)initWithFrame:(CGRect)frame{

    

    self = [super initWithFrame:frame];

    if (self) {

        

        self.titleLabel = [UILabel new];

        [self addSubview:self.titleLabel];

        self.titleLabel.sd_layout

        .leftSpaceToView(self, 20)

        .widthIs(self.frame.size.width-40)

        .heightIs(self.frame.size.height)

        .centerYEqualToView(self);

        self.titleLabel.font= [UIFont systemFontOfSize:14];

        self.titleLabel.textColor = RGBA(103, 103, 103, 1);

        

    }

    return self;

}

@end

POST:https://github.com/canwhite/QCScratchableLatexWithSectionHeader

猜你喜欢

转载自blog.csdn.net/dangbai01_/article/details/84940410