之前有个需求 ,让实现九宫格 ,然后自己就封装了一个layout ,但是后来需求让加一个头部和尾部,实现了没有展示,最后发下问题:
我自己封装的layout 是继承UICollectionViewLayout,没有添加对于的heard和bottom;
应改成UICollectionViewFlowLayout进行操作,下面说一种具体实现
1
#pragma mark -- 注册头部视图
[_moreCollectionView registerClass:[LHHeardView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:heardView];
#pragma mark -- 注册尾部视图
[_moreCollectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:footerView];
2
#pragma mark 头部和尾部 创建一个继承collectionReusableView的类,用法类比tableViewcell
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
UICollectionReusableView *reusableView = nil;
if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {
LHHeardView * heard = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:heardView forIndexPath:indexPath];
return heard;
} else if ([kind isEqualToString:UICollectionElementKindSectionFooter]) {
reusableView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:footerView forIndexPath:indexPath];
[reusableView addSubview:self.uploadBtn];
}
return reusableView;
}
即可 ;