【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