首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对UICollectionReusableView进行子类化

对UICollectionReusableView进行子类化
EN

Stack Overflow用户
提问于 2012-10-10 09:34:25
回答 2查看 5.2K关注 0票数 2

我一直在尝试在一个非故事板iPad项目中创建UICollectionReusableView的子类。我已经在IB中构建了一个视图,并将其连接到我的自定义类,注册了这个类以便在我的集合视图所在的viewController中重用,并且在

代码语言:javascript
复制
UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath

但是,在UICollectionView的标题区域中没有显示任何内容。我认为我需要用编码器初始化视图,但我不确定如何正确地这样做。我遵循了我找到的几个示例,但是header视图仍然没有出现在我的集合视图中。

代码语言:javascript
复制
- (id)initWithCoder:(NSCoder *)aDecoder {
if ((self = [super initWithCoder:aDecoder])) {
    [[NSBundle mainBundle] loadNibNamed:@"CVHeaderView" owner:self options:nil];
    [self addSubview:self.categoryNameLabel];
}
return self;

}

有谁能给我指个方向吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-26 18:00:15

如果您使用情节提要并选择页眉/页脚复选标记,则将调用initWithCoder:

如果您不使用情节提要(或不单击页眉/页脚),而是手动将其挂接起来,则必须注册您的自定义类,initWithFrame:将被调用。

代码语言:javascript
复制
[self.collectionView registerClass:[GameCardCell class] forCellWithReuseIdentifier:@"GameCardCell"];
[self.collectionView registerClass:[PlayerHeaderView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"PlayerHeaderView"];
[self.collectionView registerClass:[PlayerFooterView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"PlayerFooterView"];

注意:两者都只会被调用一次。如果视图是从缓存中取出的,就会调用prepareForReuse

票数 8
EN

Stack Overflow用户

发布于 2012-11-02 16:09:17

在我的例子中,initWithFrame:在第一次出队时被自动调用。试着实现这个方法,看看它是否起作用。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12810742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档