【问题标题】:UICollectionViewFlowLayout UICollectionReusableView DecorationView not showingUICollectionViewFlowLayout UICollectionReusableView 装饰视图不显示
【发布时间】:2012-10-30 23:18:52
【问题描述】:

我正在尝试在 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% 清楚我需要做什么才能初始化装饰视图?看起来我缺少另一个需要调用才能正确设置的委托方法。

谢谢!

【问题讨论】:

    标签: ios uicollectionview


    【解决方案1】:

    您需要像这样在- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect 中添加装饰视图:

    [attributesArray addObject:[self layoutAttributesForDecorationViewOfKind:@"BackgroundView" atIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-30
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 2014-05-30
      相关资源
      最近更新 更多