UICollectionView 单元格在我滚动时消失

Posted

技术标签:

【中文标题】UICollectionView 单元格在我滚动时消失【英文标题】:UICollectionView cell disappears when i scroll it 【发布时间】:2016-12-01 02:32:56 【问题描述】:

我有一个collectionView,它的滚动方向是水平的。它只有一行,单元格间距为 16.0px。所以我将它的collectionViewLayout 设置为一个名为UICollectionViewLeftAlignedLayoutUICollectionViewFlowLayout 子类的自定义布局:

UICollectionViewLeftAlignedLayout *layout     = [[UICollectionViewLeftAlignedLayout alloc] init];
layout.scrollDirection                        = UICollectionViewScrollDirectionHorizontal;
layout.minimumInteritemSpacing                = 16.0;
_myCollectionView.collectionViewLayout        = layout;  
_myCollectionView.autoresizingMask            = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;

但是当我滚动 collectionView 时,它的一些单元格消失了。太奇怪了!我已经尝试了我可以从google.com 找到的所有解决方案,不幸的是对我不起作用。我修复它并将解决方案发布为下面的答案。

【问题讨论】:

【参考方案1】:

我已经修好了!

我将自定义的UICollectionViewLeftAlignedLayout 替换为原生的UICollectionViewFlowLayout,就像这样:

UICollectionViewFlowLayout *layout     = [[UICollectionViewFlowLayout alloc] init];
[layout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
_myCollectionView.collectionViewLayout = layout;
_myCollectionView.autoresizingMask     = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;  

我通过storyboard设置单元格间距(也可以通过layout的属性设置):

然后我再次运行该项目,UICollectionViewCell 不再消失。

【讨论】:

以上是关于UICollectionView 单元格在我滚动时消失的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView 单元格在可见时不断重新加载

UICollectionView 隐藏/防止单元格在 Sticky Header 后面滚动

为啥我的 UICollectionView 单元格在我的 swift ios 应用程序中不可点击?

集合视图,具有自定义布局,单元格在滚动时行为不端

UICollectionView 中重叠的单元格

UICollectionView:ScrollToItem 到中心单元格在水平集合视图上不起作用