【问题标题】:How to create custom layout attributes in LayoutAttributesForDecorationView?如何在 LayoutAttributesForDecorationView 中创建自定义布局属性?
【发布时间】:2015-09-03 11:45:01
【问题描述】:

因为我需要更改装饰视图的背景颜色,所以我创建了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”个参数。

【问题讨论】:

    标签: ios xamarin xamarin.ios uicollectionview


    【解决方案1】:

    这似乎是正确的方法:

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

    下次提问前我应该使用 IntelliSense 功能...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      • 2016-02-18
      • 2017-06-12
      • 1970-01-01
      相关资源
      最近更新 更多