UICollectionView单元格消失

时间:2013-03-09 12:45:49

标签: ios objective-c uicollectionview uicollectionviewcell

我在我的iPad应用程序中使用collectionView。我使用了继承UICollectionViewFlowLayout类的自定义布局类。

我正在使用水平滚动方向。问题是,每当我们使用滚动进行集合视图时,有时候单元格会消失。我调试了代码,发现在创建单元格后的数据源方法中,其隐藏属性自动为ON。

我尝试使用下面的行,但它不能正常工作

   cell.hidden = NO  

我还有以下方法来使绑定更改的布局无效。

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

但我仍面临着问题。对此有何解决方案?

提前致谢。

2 个答案:

答案 0 :(得分:1)

在UICollectionView中存在可能导致单元格disappear的已知问题。如果他们的修复不适合您,请尝试PSTCollectionView, 这是UICollectionView的开源替代品。如果PSTCollectionView有效,您应该向Apple提交雷达票。

答案 1 :(得分:0)

在我的项目中,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;

我通过故事板设置单元格间距(您也可以通过布局设置它们):

spacing

然后我再次运行该项目,UICollectionViewCell不再消失。希望我的案子可以帮助你。

相关问题