UICollectionView



 UICollectionView* collection

先定义一个全局变量的可变数组 imageArray

 

imageArray=[NSMutableArray array ];

    

    for (int i=1; i<=15; i++) {

        

        UIImage *image=[UIImage imageNamed:[NSString stringWithFormat:@"圣斗士%02d.jpg",i]];

        [imageArray addObject:image ];

    }

    

    // Do any additional setup after loading the view, typically from a nib.

//    UICollectionView 表格视图 继承与UIScrollView UICollectionViewDelegateFlowLayout 这是一个抽象类 表格的抽象信息 布局 是由这个类设置的

    

    //设置UICollectionView的布局信息//UICollectionViewScrollDirectionVertical

    UICollectionViewFlowLayout* flowLayout=[[UICollectionViewFlowLayout alloc]init];

    

    //设置滚动方向UICollectionViewScrollDirectionHorizontal  UICollectionViewScrollDirectionVertical

    flowLayout.scrollDirection=UICollectionViewScrollDirectionVertical;

    //表格大小

    flowLayout.itemSize=CGSizeMake(100150);

    

    /**

     *  横向滚动时 屏幕的高度大于item的高度的二倍时 会自动生成多行来适应屏幕 

    纵向滚动时 屏幕的宽度大于item 的宽度倍以上 会自动生成多行自使用屏幕

     */

    

    

    

    //表格间的间距 横向的最小间距 纵向滚动式最明显

    flowLayout.minimumLineSpacing=3;

    //表格间的纵向最小间距

    flowLayout.minimumInteritemSpacing=0;

    

    //表格式图

    UICollectionView* collection=[[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:flowLayout];

    collection.dataSource=self;

    collection.delegate=self;

    [self.view addSubview:collection];

    

    //注册系统类的cell

   // [collection registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cellId"];

    //注册自定义的cell

  //  [collection registerClass:[CustomCell class] forCellWithReuseIdentifier:@"cellId"];

    

    //注册xib 文件

    [collection registerNib:[UINib nibWithNibName:@"XibCollectionViewCell" bundle:nilforCellWithReuseIdentifier:@"cellId"];

    //注册分组头标

//    [collection registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"viewId"];

//    //脚标

//    [collection registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"viewId"];

    

    //自定制头标脚标

    

//    [collection registerClass:[CustomReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"viewId"];

//        //脚标

//    [collection registerClass:[CustomReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"viewId"];

//    

    

    //xib

    [collection registerNib:[UINib nibWithNibName:@"XibCustomReusableView" bundle:nilforSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"viewId"];

    [collection registerNib:[UINib nibWithNibName:@"XibCustomReusableView" bundle:nilforSupplementaryViewOfKind:UICollectionElementKindSectionFooter

        withReuseIdentifier:@"viewId"];

    

    

}

#pragma mark -----UICollectionView协议方法-----

//返回多少分组

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView

{

    return 1;

}

//返回多少行

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section

{

    return [imageArray count];

}

//返回小单元cell

-(UICollectionViewCell*)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

{

    //添加标识

    static NSString* cellId=@"cellId";

    //在复用池中查找

//    UICollectionViewCell * cell=[collectionView dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath];

//    

//    cell.backgroundColor=[UIColor orangeColor];

    

//    for (id view in cell.contentView.subviews) {

//        [view removeFromSuperview];

//    }

//    

//    UIImageView * imageView=[[UIImageView alloc]initWithFrame:cell.bounds];

//    imageView.image=imageArray[indexPath.row];

//    [cell.contentView addSubview:imageView];

//

//    

//        //cell 上添加label

//        UILabel * label=[[UILabel alloc]initWithFrame:cell.bounds];

//        

//        label.text=[NSString stringWithFormat:@"%ld组第%ld",indexPath.section,indexPath.row];

//        

//        [cell.contentView addSubview:label];

    

    

    //自定制的cell

#if 0

    CustomCell * cell=[collectionView dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath];

    //为控件赋值

    

    cell.imageView.image=imageArray[indexPath.row];

    cell.titleLabel.text=[NSString stringWithFormat:@"%ld",indexPath.row];

#endif

    

    XibCollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath];

    

    cell.imageview.image=imageArray[indexPath.row];

    

    cell.titleLabel.text=[NSString stringWithFormat:@"%ld",indexPath.row];

    

    

    

        

        return cell;

 

 

}

 

 

//设置分组的头标和脚标

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

    

    //系统的

    static NSString*viewId=@"viewId";

    

  //  UICollectionReusableView * view=[collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:viewId forIndexPath:indexPath];

    //CustomReusableView * view=[collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:viewId forIndexPath:indexPath];

    

    XibCustomReusableView * view=[collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:viewId forIndexPath:indexPath];

    

    if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {

        view.titleLabel.text=@"头标";

        

    }else if ([kind isEqualToString:UICollectionElementKindSectionFooter])

    {

       // view.backgroundColor=[UIColor orangeColor];

     view.titleLabel.text=@"脚标";

    }

    

    return view;

}

//选中某个cell 触发的的方法

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath

{

    NSLog(@"选中了%ld",indexPath.row);

 

}

//取消选中

-(void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath

{

    //刷新数据的

   // [collectionView reloadData];

    NSLog(@"取消了选中%ld",indexPath.row);

 

}

#pragma mark -----flowout的协议方法-----

 

//设置视图之间的间距 上左下右

-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section

{

    return UIEdgeInsetsMake(10101010);

 

}

//设置item的大小

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath

{

    //默认的大小 50 *50

    return CGSizeMake(110150);

 

}

//设置分组的高度

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

{

    //纵向滚动时 height 宽自适应屏幕宽度

    //横向滚动时 width 高自适应屏幕

    

    return CGSizeMake(3030);

}

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

{

    return CGSizeMake(3030);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值