覆盖UICollectionViewFlowLayout问题中的layoutAttributesForElementsInRect

时间:2014-01-14 09:07:07

标签: ios objective-c uicollectionview uicollectionviewlayout

我想创建一个自定义UICollectionViewFlowLayout来更改标题和单元格在集合视图中的显示方式。 我将UICollectionViewFlowLayout子类化,并覆盖了我创建自定义layoutAttributesForElementsInRect对象的UICollectionViewLayoutAttributes方法。 问题是我没有使用[super layoutAttributesForElementsInRect:(CGRect)rect]来生成UICollectionViewLayoutAttributes,因此我的屏幕是空白的。 如果我使用[super layoutAttributesForElementsInRect:(CGRect)rect]方法获取UICollectionViewLayoutAttributes,则会以默认方式显示集合视图。

我正在使用以下代码创建UICollectionViewLayoutAttributes

UICollectionViewLayoutAttributes *cell = [UICollectionViewLayoutAttributes
                    layoutAttributesForCellWithIndexPath:[NSIndexPath indexPathForRow:item inSection:section]];
[cell setAlpha:self.cellOpacity];
[cell setHidden:NO];
[cell setSize:self.itemSize];
[cell setZIndex:self.cellZIndex];
[cell setFrame:CGRectMake ((self.itemSize.width * item) + self.cellPadding,
                    (section * self.itemSize.height) + self.cellPadding,
                    self.itemSize.width,
                    self.itemSize.height)];

[itemsLayoutAttributes addObject:cell];

我手动创建UICollectionViewLayoutAttributes并且不使用super方法创建的那个,这有什么不对吗? 你觉得我做错了什么?

提前谢谢!

1 个答案:

答案 0 :(得分:2)

实际上我似乎唯一错误的就是我不够小心,看不透明度被设置为 0 :(。

现在看来我的布局看起来还不错,实际上可以覆盖layoutAttributesForElementsInRect方法来创建,而不仅仅是编辑该流布局的UICollectionViewLayoutAttributes