【发布时间】:2015-07-15 04:33:14
【问题描述】:
我有一个UIViewController,其中我有一个UICollectionView。UICollectionView 的单元格需要是图像,所以我知道我需要继承UICollectionViewCell 类。所以基本上,我需要一个 UIViewController,它有一个 UICollectionView,它有一个自定义的 UICollectionViewCell。我正在使用情节提要,当我需要创建自定义 UITableVieCell 时,我执行以下操作:
- 创建
UITableViewCell的子类 - 将此子类设置为情节提要中
UITableViewCell的类 - 设置重用标识符。
- 在我的视图控制器实现中导入这个类,声明这个子类的一个单元格并继续。
但是当我对UICollectionViewCell 遵循相同的操作时,例如。我创建了一个名为CustomCollectionViewCell 的子类,并在cellForItemAtIndexPath 中声明它就像
CustomCollectionViewCell *cell = (CustomCollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
NSLog(@"%@",cell);
无论我做什么,这都会记录<UICollectionViewCell: 0x137529010; frame = (10 10; 300 164); layer = <CALayer: 0x170220880>>。我无法初始化我的自定义 UICollectionViewCell 类,因此无法添加图像。
我查看了其他 StackOverflow 答案并阅读了说不要这样做的答案:
[self.collectionView registerClass:[CustomCollectionViewCell class] forCellWithReuseIdentifier:@"Cell"];
如果我使用的是故事板,所以我将其注释掉。
所有重用标识符、出口等都已设置。我似乎找不到错误在哪里。
感谢任何帮助。
【问题讨论】:
-
您是否在情节提要中将
CustomCollectionViewCell设置为CollectionView的类? -
我做到了。经过进一步的测试,我意识到了这一点。当我这样做时,
CustomCell *cell = [[CustomCell alloc] init]; NSLog(@"%@",[cell class]),它返回CustomCell。但是当我这样做时,cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];,它返回UICollectionViewCell。
标签: ios objective-c iphone uicollectionview uicollectionviewcell