大UICollectionViewCell的消失与自定义布局(Large UICollectionV

2019-08-03 17:29发布

我子类UICollectionViewLayout 。 到现在为止还挺好。
不过,我有一些细胞比屏幕宽,有时这些消失的同时滚动。 当您滚动多一些,他们奇迹般地重新出现,他们应该是。 我可以告诉你我的代码,但是我觉得有什么不妥它,因为它工作在的情况下,90%。然而,真正的大细胞(两次以上屏幕尺寸)有时会消失。

NSMutableArray* attributes = [NSMutableArray array];
for (int section=0; section < [[self collectionView] numberOfSections]; section++) {
    [attributes addObject:[self layoutAttributesForSupplementaryViewOfKind:UICollectionElementKindSectionHeader atIndexPath:[NSIndexPath indexPathForItem:0 inSection:section]]];
        for (int row=0; row < [[self collectionView] numberOfItemsInSection:section]; row++) {
            NSIndexPath* indexPath = [NSIndexPath indexPathForItem:row inSection:section];
            [attributes addObject:[self layoutAttributesForItemAtIndexPath:indexPath]];
        }
 }
 return attributes;

我也已经这些帖子: UICollectionView的细胞消失和大细胞在UICollectionView而细胞仍显示越来越除去然而,未提及的解决方案。 任何人可以帮助我吗? 难道是这个问题是苹果公司的一面呢? 而如果是,有什么我可以做来解决它自己?

Answer 1:

遗憾地告诉你:我敢肯定这UICollectionView一个真正的bug; 我在几个星期前碰到这种同样的事情。 我做了一个小程序来演示这个bug,并提交了雷达与苹果公司,但还没有听说过回他们是否是否打算修复它。 最好的解决方法我能想到的(警告:我还没有实现这个解决方法)是注意到布局属性是很离谱的屏幕的边缘,故意改变边界的单元属性,所以它只是稍微熄灭屏幕上,并可能商店偏移(你修剪掉的真正范围应该是什么样的量)作为layoutAttributes额外的自定义字段,让你的知道画出它的内容正确。 这感觉就像一个黑客总值(GDP),但它应该工作。



Answer 2:

你确定你返回此单元格的权利属性对象时方法-(NSArray*)layoutAttributesForElementsInRect:(CGRect)rect被调用,当RECT只是你的一部分?



文章来源: Large UICollectionViewCell's disappearing with custom layout