我试图定义自己的自定义UICollectionViewCell
实现并在UICollectionView
中使用它。这是我所做的。iOS - 缺少将某个自定义UICollectionViewCell添加到UICollectionView
1-我正在使用故事板。
2-我在另一个视图中添加了一个UICollectionView
,这是故事板上的一个场景。
3我将集合的datasource
和delegate
指向场景的控制器。
4-我在控制器中提供了所需方法的实现。
5-我创建了一个单元格视图.h
和.m
文件。在.h
文件我做
@interface HscCellView : UICollectionViewCell
6-我创建了一个新的观点,所以我得到了一个新的画布,并在右边的相应部分我指定了我的类名(同步骤5)并提供了一个唯一的标识符。
7在控制器的场景,我在.h文件到我在拖集合视图限定的出口。
@property (nonatomic, strong) IBOutlet UICollectionView *holesCollectionView;
和viewDidLoad
我做
[self.holesCollectionView registerClass:[HscCellView class] forCellWithReuseIdentifier:@"cellView"];
请注意,cellView
是我为自定义单元格xib指定的唯一标识符。
8最后,我实现
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
HscCellView *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cellView" forIndexPath:indexPath];
return cell;
}
当我火起来的应用程序,我得到了一堆细胞意见(9,因为我在numberOfItemsInSection
消息指定9),但他们都不是我的自定义单元格视图。他们没有尺寸,颜色或标签。我没有看到任何错误。我卡住了。
一些辅助问题。
什么时候使用注册笔尖,什么时候注册类名?我已经看到了它的两种方式,但看起来你总是最终得到一个nib和一个类定义代码,这是真的吗?
在步骤6中,当我在自定义单元格视图的画布中指定唯一标识时,是否意味着我不需要在
viewDidLoad
中注册类?
检查'dequeueReusableCellWithReuseIdentifier'后的'cell'的值。它可能是零?你需要从nib或者alloc/init中加载一个。 –
@ ott - hmm interesting - cell是我的类'(HscCellView *)'的一个实例。它似乎没有任何我在画布上为xib(size,bg color,label)定义的东西。 – hvgotcodes