博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CollectionView Header And Footer 的使用
阅读量:5083 次
发布时间:2019-06-13

本文共 3445 字,大约阅读时间需要 11 分钟。

CollectionView Header And footer 的添加和设置

建议先看CollectionView 第一篇:

 

注册Header 和 Footer

    //注册区头

        [_myCollectionView registerClass:[HeaderCRView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"headerView"];

   //注册区尾

        [_myCollectionView registerClass:[HeaderCRView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"footerView"];

 

自定义Header子类  ---->HeaderCRView (创建)

自定义的话,header子类要继承自 UICollectionReusableView。

#pragma mark 自定义区头  区尾 样式

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

{

    NSString *CellIdentifier = @"headerView";

    NSString *cellfooter = @"footerView";

    

    HeaderCRView *cell= nil;

 

    if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {

    

    

         cell = (HeaderCRView *)[collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:CellIdentifier forIndexPath:indexPath];

        [cell initCollectionHeaderViewindex:indexPath.section];

 

        

    }

     if ([kind isEqualToString:UICollectionElementKindSectionFooter]) {

    

        

         cell = (HeaderCRView *)[collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:cellfooter forIndexPath:indexPath];

        

        [cell initCollectionFootViewindex:indexPath.section];

    }

    

    return cell;

}

 

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

        //设置区头高度

    if (section == 0) {

        CGSize size = CGSizeMake(kUIScreenWidth, 135+35);

        return size;

    }

    CGSize size = CGSizeMake(kUIScreenWidth, 35);

    return size;

 

}

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

    //设置区尾 高度

    CGSize size = CGSizeMake(kUIScreenWidth, 10);

    return size;

    

}

 

HeaderCRView  .h

@interface HeaderCRView : UICollectionReusableView

 

//区头

- (void)initCollectionHeaderViewindex:(NSInteger *)index;

//区尾

- (void)initCollectionFootViewindex:(NSInteger *)indexPath;

 

@end

 

HeaderCRView  .m

- (void)initCollectionHeaderViewindex:(NSInteger *)index {

    

    if (index == 0) {

        

        UIView *headerView = [[UIView alloc]initWithFrame:CGRectMake(0, 135, kUIScreenWidth, 35)];

        headerView.backgroundColor = [UIColor whiteColor];

        [self addSubview:headerView];

        

        UILabel *titleLab = [[UILabel alloc]initWithFrame:CGRectMake(15, 10, 80, 15)];

        titleLab.text = @"我的应用";

        titleLab.textColor = [CommonFunctions colorWithHex:0x4A4A4A];

        titleLab.font = [UIFont fontWithName:kPingFang_Regular size:14];

        [headerView addSubview:titleLab];

        

    }

    

    if (index == 1) {

        

        UIView *headerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, kUIScreenWidth, 35)];

        headerView.backgroundColor = [UIColor whiteColor];

        [self addSubview:headerView];

        

        UILabel *titleLab = [[UILabel alloc]initWithFrame:CGRectMake(15, 10, 80, 15)];

        titleLab.text = @"业务发展";

        titleLab.textColor = [CommonFunctions colorWithHex:0x4A4A4A];

        titleLab.font = [UIFont fontWithName:kPingFang_Regular size:14];

        [headerView addSubview:titleLab];

        

    }

    

}

 

- (void)initCollectionFootViewindex:(NSInteger *)indexPath {

    

    UIView *footView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, kUIScreenWidth, 10)];

    footView.backgroundColor = [UIColor groupTableViewBackgroundColor];

    [self addSubview:footView];

    

    

}

 

 

 

效果图 

 

转载于:https://www.cnblogs.com/Lovexiaohuzi/p/6104841.html

你可能感兴趣的文章
申请到新博客了好开心
查看>>
编写高质量代码改善C#程序的157个建议——建议16:元素数量可变的情况下不应使用数组...
查看>>
编写高质量代码改善C#程序的157个建议——建议152:最少,甚至是不要注释
查看>>
设计模式12: Proxy 代理模式(结构型模式)
查看>>
显示数据
查看>>
#define中的“#”和“##”的作用
查看>>
rapidminer学习笔记6-从MYSQL到微软SQL SERVER
查看>>
js获取当前页面url信息方法(JS获取当前网址信息)
查看>>
微信小程序开发--路由切换,页面重定向
查看>>
APDU指令返回码及其代表含义
查看>>
地理编码和反地理编码
查看>>
svn cleanup失败解决方法
查看>>
ionic框架对Android返回键的处理
查看>>
IntelliJIDEA永久注册使用
查看>>
Android开发AVD路径问题
查看>>
Python02
查看>>
461. Hamming Distance
查看>>
windows下redis安装
查看>>
团队项目第一阶段冲刺站立会议05
查看>>
Windows Sublime text3 搭建Go语言环境
查看>>