UICollectionView 单元格消失
Posted
技术标签:
【中文标题】UICollectionView 单元格消失【英文标题】:UICollectionView cell disappears 【发布时间】:2013-03-09 12:45:48 【问题描述】:我在我的 iPad 应用程序中使用 collectionView。我使用了继承 UICollectionViewFlowLayout 类的自定义布局类。
我正在使用水平滚动方向。问题是,每当我们使用滚动查看集合视图时,有时单元格会消失。我调试了代码,发现在数据源方法中创建单元格后,它的隐藏属性自动开启。
我尝试使用下面的行但它不起作用
cell.hidden = NO
我还有以下方法可以使绑定更改时的布局无效。
- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
return YES;
但我仍然面临问题。有什么解决办法吗?
提前致谢。
【问题讨论】:
我也遇到了同样的问题,你找到解决办法了吗? 我设法解决了我的问题***.com/questions/38913664/… 【参考方案1】:有一个已知问题可能会导致 UICollectionView 中的单元格出现disappear。如果他们的修复对您不起作用,请尝试PSTCollectionView, 这是 UICollectionView 的开源替代品。如果 PSTCollectionView 有效,您应该向 Apple 提交雷达票。
【讨论】:
你的意思是说这是 UICollectionView 的 bug? 我最近遇到了很多 UICollectionView 的 bug。我很确定 UICollectionView 不是没有错误的。最好的检查方法是使用 PSTCollectionView。由于它是开源的,因此您可以轻松跟踪您的代码。【参考方案2】:在我的项目中, UICollectionViewCell 也消失了,我使用的 flowLayout 是一个名为 UICollectionViewLeftAlignedLayout
的自定义布局。它的滚动方向是水平的。我一次又一次地调试项目,尝试了我可以通过google.com
找到的所有解决方案。所有这些都不适合我。
最后,我删除了UICollectionViewLeftAlignedLayout
并使用原生
UICollectionViewFlowLayout
通过:
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
[layout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
_collectionView.collectionViewLayout = layout;
_CollectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
我通过storyboard设置单元格间距(也可以通过layout的propery设置):
然后我再次运行该项目,UICollectionViewCell 不再消失。希望我的案例能帮到你。
【讨论】:
以上是关于UICollectionView 单元格消失的主要内容,如果未能解决你的问题,请参考以下文章
在 UICollectionView 中滚动 2-3 次后单元格消失
UICollectionView 单元格在几秒钟后消失或在点击屏幕时消失