iOS - 缺少将自定义 UICollectionViewCell 添加到 UICollectionView 的内容

Posted

技术标签:

【中文标题】iOS - 缺少将自定义 UICollectionViewCell 添加到 UICollectionView 的内容【英文标题】:iOS -- missing something adding a custom UICollectionViewCell to a UICollectionView 【发布时间】:2013-01-14 13:50:11 【问题描述】:

我正在尝试定义我自己的自定义 UICollectionViewCell 实现并在 UICollectionView 中使用它。这是我所做的。

1- 我正在使用情节提要。

2- 我在另一个视图中添加了UICollectionView,那是故事板上的一个场景。

3- 我将集合的 datasourcedelegate 指向场景的控制器。

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 步中,当我在画布中为自定义单元格视图指定唯一 id 时,是否意味着我不需要在 viewDidLoad 中注册该类?

【问题讨论】:

dequeueReusableCellWithReuseIdentifier之后检查cell的值。会不会是零?您需要从 nib 或 alloc/init 加载一个。 @ott--hmm 有趣——cell 是我的班级(HscCellView *) 的一个实例。它似乎没有我在画布上为 xib 定义的任何东西(大小、bg 颜色、标签)。 【参考方案1】:

知道了,我想。我会尝试解释它,如果我错了,希望能得到纠正。我认为这对其他人会有所帮助。根据我的问题中的 cmets,我确定我的类的实例实际上正在加载。但是,xib 被忽略了。这意味着当我的类被加载时,xib 没有被使用。所以,在问题的第 7 步中,我这样做了

UINib *nib = [UINib nibWithNibName:@"HscCellView" bundle:nil];
    [self.holesCollectionView registerNib:nib forCellWithReuseIdentifier:@"cellView"];

而不是注册课程,现在事情似乎可以工作了。

我有点好奇为什么,因为我将 xib 与我的自定义类链接,这是必要的,但我不再被卡住了。

【讨论】:

以上是关于iOS - 缺少将自定义 UICollectionViewCell 添加到 UICollectionView 的内容的主要内容,如果未能解决你的问题,请参考以下文章

SharePoint Online office 365缺少将站点另存为模板选项

UICollection 的镜像滚动

查缺补漏 | Python自定义函数

Android查缺补漏(View篇)--自定义View利器Canvas和Paint详解

Android查缺补漏(View篇)--自定义 View 的基本流程

Android查缺补漏(View篇)--自定义 View 中 wrap_content 无效的解决方案