UICollectionView 显示为空白 - 单元格不显示
Posted
技术标签:
【中文标题】UICollectionView 显示为空白 - 单元格不显示【英文标题】:UICollectionView appears blank - cells don't show 【发布时间】:2015-11-10 23:30:15 【问题描述】:我已经设置了一个带有自定义单元格 XIB 的 UICollectionView。我已经适当地设置了委托、数据源方法,但是在加载集合视图时显示为空白并带有黑屏:
这是我注册自定义 xib 单元格的代码:
[self.collectionView registerClass:[CustomViewCell class] forCellWithReuseIdentifier:@"cvCell"];
委托/数据源方法:
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
return 2;
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
return 4;
-(CustomViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
static NSString *cellIdentifier = @"cvCell";
CustomViewCell *cell = (CustomViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
return cell;
我还为自定义 xib 单元格设置了类:
编辑:
集合视图布局设置为:
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setItemSize:CGSizeMake(50, 29)];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
[self.collectionView setCollectionViewLayout:flowLayout];
50,29是指实际自定义视图xib单元格的大小
【问题讨论】:
您的 collectionViewLayout 设置为什么?看起来要么有问题,要么你的所有单元格都是透明的。 你把集合控制器添加到窗口了吗? 我通过 IB 添加了集合视图并连接到 VC 中的一个插座。还要设置datasource和delegate给符合UICollectionViewDataSource的VC,delegate。 【参考方案1】:您应该注册自定义单元格的 nib 而不是类。
UINib *cellNib = [UINib nibWithNibName:@"cvCell" bundle:nil];
[self.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"cvCell"];
【讨论】:
注册类通常应该可以正常工作,虽然是正确的,但它不会使用他的 xib,所以它只是分配/初始化一个 CustomViewCell 而没有来自 xib 的任何内容。在这些情况下,所有内容都必须添加到 CustomViewCell 代码中。 @CarlLindberg - 你是说我必须执行上述操作才能正确加载自定义单元格 xib 及其所有元素? @user1686342 是的,因为您在 nib 文件中创建单元格的 UI,因此您必须将该 nib 文件注册到集合视图。 好的,我刚刚完成了,但仍然没有解决问题以上是关于UICollectionView 显示为空白 - 单元格不显示的主要内容,如果未能解决你的问题,请参考以下文章
为 UICollectionView 设置一个新的 collectionViewLayout 给空白屏幕
UICollectionView初始滞后,PagingEnabled = true