我想创建一个自定义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方法创建的那个,这有什么不对吗?
你觉得我做错了什么?
提前谢谢!
答案 0 :(得分:2)
实际上我似乎唯一错误的就是我不够小心,看不透明度被设置为 0 :(。
现在看来我的布局看起来还不错,实际上可以覆盖layoutAttributesForElementsInRect
方法来创建,而不仅仅是编辑该流布局的UICollectionViewLayoutAttributes
。