发生了什么
目前我有一个UICollectionViews
在UITableView
. 通过这种方式,我创建了一个看起来像 Pulse News 的应用程序。我的问题是,有时第 6 行和第 11 行会完全消失,在应该是单元格的地方留下一个空白区域。我实际上并不介意,如果所有的细胞都是这样的(这样我可以假设我没有正确地做事),但问题是,只是发生在那些特定的细胞上。
我的理论
第 6 行和第 11 行是我开始滚动时出现的行,所以默认情况下我可以看到 5 个单元格,当我第一次水平滚动时,第 6 行出现(有时是空白)。
是)我有的
我现在唯一要做的就是:
[self.collectionView registerNib:[UINib nibWithNibName:CELL_NIB_NAME bundle:nil] forCellWithReuseIdentifier:CELL_IDENTIFIER];
在viewDidLoad
. 在创建单元格时:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
MyCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CELL_IDENTIFIER forIndexPath:indexPath];
NSMutableDictionary *dictionary = [self.DataSource objectAtIndex:[indexPath row]];
[cell buildViewWithDictionary:dictionary withReferenceParent:self.referenceViewController];
return cell;
}
因此,在我的低估中,这里没有什么好看的。我虽然数据源(一个虚拟的 JSON 文件)有问题,但有时它可以正常工作并且单元格显示,所以我猜从那部分是可以的。
所以我的“问题”:有人知道发生了什么吗?我真的不想说这是 iOS 的错误,但我想不出别的。
编辑 1.0
令人惊奇的是,这种方法
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;
在不计算 [0,5] 的情况下从indexPath
[0,4] 变为 [0,6]。我第一次在 iOS 中真正看到这种情况。
编辑 2.0
我改变了创建单元格的方式,而不是出队,我使用的是旧方式:
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CELL_NIB_NAME owner:self options:nil];
MyCell *cell = (MyCell *)[nib objectAtIndex:0];
还是一样的悲惨结果。