在 UICollectionView 中滚动 2 - 3 次后单元格消失

Cod*_*ger 1 objective-c ios uicollectionview uicollectionviewcell uicollectionviewlayout

滚动我的UICollectionView. 它显示一个空白视图,其中没有任何单元格。

它奇怪地隐藏了我的手机或移除了我的手机,我不知道,但我找不到任何解决方案。

我已经尝试过这些解决方案:

第一:尝试创建自定义类UICollectionViewFlowLayout并按照所有不同的方法进行操作,但无法解决我的问题。

第二:尝试了以下方法来重新分配和重新计算我的单元格大小:

-(BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
{
   return YES;
}
Run Code Online (Sandbox Code Playgroud)

我遵循的链接:

问题 1:UICollectionView 的单元格消失

问题 2:使用我自己的 UICollectionViewFlowLayout 子类滚动时 UICollectionView 项目消失

请指导我使用自定义单元格的简单集合视图有什么问题。

参考图片:

滚动前: 在此处输入图片说明

滚动后: 在此处输入图片说明

Cod*_*ger 6

我在这里回答我自己的问题。

因为我在这个问题上被困了过去 2 天。

当我使用CollectionViewController并将该Controller视图添加到我当前使用的控制器中时,它会消失我的集合视图单元格。

原因: 由于ARC释放那个delegate&datasource连接,并且当我从上到下滚动时,该集合视图无法获取单元格。

解决方案:

我用两种方法解决这个问题。

第一:由于连接丢失,CollectionViewController在我当前VC不在 Service & JSONParser 类中创建它delegate & datasource

下面代码中最重要的部分是addChildViewController它不会释放委托连接并按预期工作。

UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
CardListViewController *objCardListViewController = [mainStoryBoard instantiateViewControllerWithIdentifier:@"CardListViewController"];
objCardListViewController.view.frame = CGRectMake(0, 0,self.cardMainView.frame.size.width, self.cardMainView.frame.size.height);
[self.cardMainView addSubview:objCardListViewController.view];
[self addChildViewController:objCardListViewController];
Run Code Online (Sandbox Code Playgroud)

但是根据我的要求,我在很多地方都需要这个集合视图,所以我需要概括这个集合视图。

所以,我选择哪个是第二方式ContainerView添加子控制器和我连接这个CollectionViewController集装箱观点,所以我可以用它尽可能多的地方,我需要这个名单。

奇怪但真实。

如果遇到同样的问题,希望这会对某人有所帮助。

谢谢&快乐编码。