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

时间:2017-01-11 13:43:23

标签: ios objective-c uicollectionview uicollectionviewcell uicollectionviewlayout

滚动我的UICollectionView时,我遇到了一个奇怪的问题。它显示一个空白视图,其中没有任何单元格。

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

我从SO中尝试过这些解决方案:

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

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

-(BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
{
   return YES;
}

我遵循的链接:

Que1:UICollectionView's cell disappearing

Que2:UICollectionView items disappear when scrolling with my own UICollectionViewFlowLayout subclass

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

参考图片:

滚动之前: enter image description here

滚动后: enter image description here

1 个答案:

答案 0 :(得分:2)

我在回答自己的问题。

由于我在这个问题的最后两天被困,希望有人得到帮助,如果有人得到像我一样的问题。

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

  

原因ARC释放delegate& datasource连接和该收集视图无法获得我的格式   从上到下滚动。

<强>解决方案:

我通过两种方式解决了这个问题。

第一名:在我当前的CollectionViewController中创建VC而不是服务&amp;由于JSON连接丢失导致的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];
  

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

所以我选择ContainerView使用添加子控制器的第二种方式,并将此CollectionViewController与容器视图连接起来,这样我就可以在需要的地方使用它这个清单。

奇怪但真实。

希望如果面临同样的问题,这将有助于某人。

谢谢&amp;快乐的编码。