如何以编程方式在集合视图中插入自定义单元格?

时间:2015-01-21 05:37:59

标签: ios objective-c uiimage uicollectionview

我有一个没有用任何东西初始化的集合视图。它旨在显示图像网格。图像是从互联网上加载的,我试图在加载时动态地将这些图像添加到集合视图中。

集合视图有一个自定义单元格,其中包含一个给定重用标识符的图像视图。

据我了解,我可以使用以下内容将项添加到collectionView中:

[collectionView insertItemsAtIndexPaths:newData];

但我想弄清楚的是如何在给定标识符的情况下添加一个新的自定义单元格并将其提供给我加载的UIImage。

3 个答案:

答案 0 :(得分:1)

试试这个

  1. 创建集合视图对象

    UICollectionView *collectionVC;
    
  2. 在viewdidload中设置集合视图

    collectionVC=[[UICollectionView alloc] initWithFrame:CGRectMake(0, 94, self.view.frame.size.width, self.view.frame.size.height-133) collectionViewLayout:layout];
    
    [collectionVC setDataSource:self];
    
    [collectionVC setDelegate:self];
    
    UINib *nib = [UINib nibWithNibName:@"PDetailViewCell" bundle:nil];
    [collectionVC registerNib:nib forCellWithReuseIdentifier:@"cellIdentifier"];
    
    [collectionVC setBackgroundColor:[UIColor whiteColor]];
    
    [self.view addSubview:collectionVC];
    
  3. 集合视图委托方法

    - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
    {
    
    PDetailViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];
    
    return cell;
    }
    
  4. 创建自定义单元格PDetailViewCell

答案 1 :(得分:0)

假设您要为不同类型的UICollectionviewCellType1的新项目x添加新单元格xCell,那么您需要在用于显示集合视图的数组中插入新项目并在

中编写逻辑
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath

检查新项目并在UICollectionView中使用新的单元格类型。

如有问题,请告诉我。

答案 2 :(得分:0)

简而言之,您不能手动插入每个项目。您告诉集合视图它有多少个部分,每个部分有多少个项目,以及您希望为每个项目显示什么。

务必检查UICollectionViewDataSourceUICollectionViewDelegate