2

decoration viewUIViewController の各行の後ろに表示しようとしています。

各「行」には 3 がありUICollectionViewCellsます。3 つのセルの行の後ろに装飾ビューを介して背景を表示したいと思います。

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%明確ではありませんか?すべてを適切にセットアップするために呼び出す必要がある別のデリゲート メソッドが欠落しているようです。

ありがとう!

4

1 に答える 1

1

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect次のように装飾ビューを追加する必要があります。

[attributesArray addObject:[self layoutAttributesForDecorationViewOfKind:@"BackgroundView" atIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]];
于 2012-11-13T13:38:18.017 に答える