如何在ios中的一个控制器中注册多个UICollectionViewCell类

时间:2016-05-15 18:58:11

标签: ios objective-c uicollectionview

我使用两个不同的uicollectionview与不同的两个不同的uicollectionviewcell和单元格的结构也不同如何在一个控制器视图中注册两个单元类。

1 个答案:

答案 0 :(得分:1)

    [self.collectionView registerClass:[HCTabBarItemCell class]
            forCellWithReuseIdentifier:[HCTabBarItemCell reuseIdentifier]];

如果您从.xib文件加载自定义UICollectionViewCell子类,您还应该注册其笔尖:

    [self.collectionView registerNib:[HCTabBarItemCell nibName] 
          forCellWithReuseIdentifier:[HCTabBarItemCell reuseIdentifier]];

其中类方法nibName&在您的(基本)自定义单元类中声明并实现了reuseIdentifier:

+ (NSString *)reuseIdentifier {
    return NSStringFromClass([self class]);
}

+ (UINib *)nibName {
    return [UINib nibWithNibName:NSStringFromClass([self class]) bundle:nil];
}

然后通过reuseIdentifier:

在cellForRow方法中获取自定义单元格
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView 
                   cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    HCTabBarItemCell *cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:[HCTabBarItemCell reuseIdentifier]
                                                                            forIndexPath:indexPath];
    return cell;
}