UICollectionViewCell随机隐藏
我有一个UIView,我在其中添加一个UICollectionView
作为横幅视图,看起来像一个旋转木马。 UIView
所在的Viewcontroller
是pageviewcontroller
一部分。
PageVC – > UIViewController
– > UIView
– > UICollectionView
。
每个VC都有自己的横幅,所以当刷页时,我会用各自的数据重新加载collectionView
,我能够看到它。 现在,如果访问我已经访问过的页面,则collectionview
单元格将消失。 collectionview
视图可见,但单元格以某种方式隐藏。
collectionview
单元格是一个自定义单元格,我没有使用任何自定义布局,我使用的是默认的flowlayout
。 这在iOS8-devices
运行良好。
下面是调试器输出,当单元格可见时:
CollectionViewCell: 0x7f9db8d9ffa0; baseClass = UICollectionViewCell; frame = (209 3.5; 209 96); clipsToBounds = YES; opaque = NO; layer = >
当隐形(你现在可以看到它隐藏)时,现在隐藏了被破坏的细胞,不知道它为什么会发生
CollectionViewCell: 0x7f9dbb5897e0; baseClass = UICollectionViewCell; frame = (0 3.5; 209 96); clipsToBounds = YES; hidden = YES; opaque = NO; layer = >
indexPathsForVisibleItems返回nil。
我从多个地方调用reloadData
导致系统混淆(可能),特别是我在updateconstraints
方法中编写了reloadData
,因此对于每个次要约束更改reloadData
被调用。
如果遇到同样的问题,请检查调用reloadData
for collectionview
所有位置。
我遇到了同样的问题。
后
- 检查是否在MainThread以外的某个线程中调用了UICollectionView reloadData
- 检查是否存在多次调用reloadData或updateconstraints的情况
在没有解决我的问题的情况下,我意识到在某些情况下CGSizeZero被返回到collectionView:layout:sizeForItemAtIndexPath : .
在避免CGSizeZero结果时,一切运行良好。
同样的问题。
这是我的情况:
我的集合视图具有自定义布局。 我使用默认的流布局没有任何问题。
当我使用自定义布局时,其单元格宽度为半屏宽度。 当我滚动到第5个单元格时,所有单元格都无缘无故地隐藏起来。
最后我发现当我在故事板的布局类中正确设置单元格的大小时 ,问题就解决了。
希望这可以帮助。