【发布时间】:2012-11-01 21:29:40
【问题描述】:
发生了什么
目前我有一个在UITableView 中使用两个UICollectionViews 的应用程序。通过这种方式,我创建了一个看起来像 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];
还是一样的悲惨结果。
【问题讨论】:
-
我遇到了同样的问题,但是消失的单元格最终会呈现在前一个单元格的下方!很奇怪。我认为这是 iOS 中的错误。
-
奇怪的事情正在发生。 =/ 但仍然是一个出色的控制器..
-
我有使用集合视图创建的经典网格视图。我连续有 3 个单元格有小间隙。同样的事情也发生在这里,但似乎非常随机。有时,一个单元格会连续排在第 4 位,而在预期的位置上什么都没有。
标签: ios xcode uicollectionview uicollectionviewcell