我们如何为单个UICollectionView使用两种类型的UICollectionViewCell?

时间:2015-02-09 16:23:51

标签: ios uicollectionview uicollectionviewcell

我有两种类型的UICollectionViewCell:一种是图库单元格,另一种是配方单元格。

有一个切换按钮。 第一次加载视图时,图库单元格用于在集合视图中显示。

但是在单击切换按钮时,我尝试加载另一个单元格:(配方单元格)但它崩溃说在图库单元格中没有属性(实际上这是配方单元格的属性)。

有没有办法用另一个单元格加载相同的集合视图?

提前致谢。

编辑:

    if (isGalleryOnCollectionView) {

    ProfileFollowerCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell"  forIndexPath:indexPath];

    NSString *followerName;

    if ([[arr_followerNames objectAtIndex:indexPath.row] isEqualToString:@""]) {
        followerName=[arr_followersEmail objectAtIndex:indexPath.row];
    }
    else{
        followerName=[arr_followerNames objectAtIndex:indexPath.row];
    }

    NSLog(@"\n\n\n follower name is :: %@\n\n",followerName);

    cell.lbl_followerName.text = followerName;

}else{

        GalleryCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];


        cell.lbl_recipeName.text = [[[dict_profileData valueForKey:@"recipes"] valueForKey:@"name"] objectAtIndex:indexPath.row];


}

解决方案:

[self.profleCollectionView registerClass:[ProfileFollowerCell class] forCellWithReuseIdentifier:@"followercell"];

在将可重复使用的标识符出列之前从nib注册后,它可以正常工作。

1 个答案:

答案 0 :(得分:3)

Here is a good tutorial on creating custom UICollectionViewCell with xibs.

您在-(void)viewDidLoad

中遗漏了这些内容
UINib *cellNib = [UINib nibWithNibName:@"ProfileFollowerCellNib" bundle:nil];
[self.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"TheNibCellIdentifier"];

您还需要确保在加载单元格时使用相应的ReuseIdentifier

ProfileFollowerCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"TheNibCellIdentifier"  forIndexPath:indexPath];