UICollectionReusableView未显示

时间:2017-07-20 15:09:37

标签: ios uicollectionview

我已将<UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>添加到我的收藏集视图中,并设置我的UICollectionView,如下所示。

[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:reuseIdentifier];
[self.collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:headerReuseIdentifier];

我还添加了必要的方法。

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section {
    return CGSizeMake(self.view.frame.size.width, 44.0f);
}

- (UICollectionReusableView *)supplementaryViewForElementKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"supplementaryViewForElementKind called");
    if ([elementKind isEqualToString:UICollectionElementKindSectionHeader]) {
        UICollectionReusableView *header = [self.collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader
                                                                               withReuseIdentifier:headerReuseIdentifier
                                                                                      forIndexPath:indexPath];
        header.backgroundColor = [UIColor redColor];
        return header;
    }

    return nil;
}

但是,supplementaryViewForElementKind永远不会被调用。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果您已在Interface Builder中添加了标题视图并已分配了该类,则应删除代码中的registerClass调用。它应该显示。在您的委托方法中暂停以查看它被调用。