我正在尝试在UIViewController中的每一行后面显示decoration view
。
每个“行”有3个UICollectionViewCells
。我想在三个单元格的行后面的装饰视图中显示背景。
在viewDidLoad:
我正在注册装饰视图:
[self.collectionView.collectionViewLayout registerClass:[CollectionRowDecorationView class] forDecorationViewOfKind:@"RowDecorationView"];
我还设置了以下委托方法:
- (UICollectionViewLayoutAttributes *)layoutAttributesForDecorationViewOfKind:(NSString *)decorationViewKind atIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewLayoutAttributes *layoutAttributes = [UICollectionViewLayoutAttributes layoutAttributesForDecorationViewOfKind:decorationViewKind withIndexPath:indexPath];
layoutAttributes.frame = CGRectMake(0.0, 0.0, self.collectionView.contentSize.width, self.collectionView.contentSize.height);
layoutAttributes.zIndex = -1;
return layoutAttributes;
}
不幸的是,委托方法没有被调用。我不是100%清楚地阅读文档我需要做什么才能使装饰视图初始化?看起来我错过了另一个需要调用的委托方法,以便能够正确设置所有内容。
谢谢!
答案 0 :(得分:1)
您需要在- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect
中添加装饰视图,如下所示:
[attributesArray addObject:[self layoutAttributesForDecorationViewOfKind:@"BackgroundView" atIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]];