如何在 LayoutAttributesForDecorationView 中创建自定义布局属性?

How to create custom layout attributes in LayoutAttributesForDecorationView?

因为我需要更改装饰视图的背景颜色,所以我创建了 UICollectionViewLayoutAttributes 的子类。我唯一缺少的是创建布局属性。这就是我目前在 layoutAttributesForDecorationViewOfKind:atIndexPath::

中所做的
public override UICollectionViewLayoutAttributes LayoutAttributesForDecorationView (NSString kind, NSIndexPath indexPath)
{
    CustomCollectionViewLayoutAttributes attribute = UICollectionViewLayoutAttributes.CreateForDecorationView (kind, indexPath) as CustomCollectionViewLayoutAttributes;
    // ...
}

但它与 System.NullReferenceException 一起崩溃,因为 layoutAttributesForDecorationViewOfKind:withIndexPath: returns null.

我是不是漏掉了什么?

我试过

CustomCollectionViewLayoutAttributes attribute = CustomCollectionViewLayoutAttributes.CreateForCell<CustomCollectionViewLayoutAttributes> (indexPath);

但我得到了

UICollectionView received layout attributes for a cell with an index path that does not exist

正确的方法应该是这样的

CustomCollectionViewLayoutAttributes attribute = CustomCollectionViewLayoutAttributes.CreateForDecorationView<CustomCollectionViewLayoutAttributes> (indexPath);

但它无法编译。

No overload for method 'CreateForDecorationView' takes '1' arguments.

这似乎是正确的方法:

CustomCollectionViewLayoutAttributes attribute = CustomCollectionViewLayoutAttributes.CreateForDecorationView<CustomCollectionViewLayoutAttributes>(kind, indexPath);

下次问问题之前我应该​​使用 IntelliSense 功能...