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

时间:2015-09-03 11:45:02

标签: ios xamarin xamarin.ios uicollectionview

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

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

但它与System.NullReferenceException崩溃,因为layoutAttributesForDecorationViewOfKind:withIndexPath:返回null。

我错过了什么吗?

我用

尝试了
CustomCollectionViewLayoutAttributes attribute = CustomCollectionViewLayoutAttributes.CreateForCell<CustomCollectionViewLayoutAttributes> (indexPath);

但是我来了

  

UICollectionView接收了索引路径不存在的单元格的布局属性

正确的方法应该是

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

但它没有编译。

  

方法'CreateForDecorationView'没有重载需要'1'参数。

1 个答案:

答案 0 :(得分:0)

这似乎是正确的方法:

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

我应该在下次提问之前使用智能感知功能......