CollectionViewCell 问题。从 .xib 到自定义 collectionviewcell 的故事板转换
Posted
技术标签:
【中文标题】CollectionViewCell 问题。从 .xib 到自定义 collectionviewcell 的故事板转换【英文标题】:CollectionViewCell issue. From .xib to storyboard transition for custom collectionviewcell 【发布时间】:2016-04-02 08:54:21 【问题描述】:我有一个自定义的 TagCollectionViewCell,它是一个自定义的 UICollectionViewCell。在 .xib 时代,我曾经通过 UINib 进行实例化,但现在使用 Storyboard 我一无所知。
UINib *cellNib = [UINib nibWithNibName:@"TagCollectionViewCell" bundle:nil];
[self.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"TagCell"];
_sizingCell = [[cellNib instantiateWithOwner:nil options:nil] objectAtIndex:0];
在情节提要中,我将笔尖粘贴到 .storyboard 中,并为其指定了指定的自定义类。但我得到一个白屏。这是我的自定义收藏单元格,我希望它成为故事板。
我应该在集合视图 cell_for_item_atindexpath 中进行哪些更改。 .xib 的代码如下。
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
TagCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"TagCell" forIndexPath:indexPath];
[self _configureCell:cell forIndexPath:indexPath];
return cell;
配置布局是这样的。
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
[self _configureCell:_sizingCell forIndexPath:indexPath];
return [_sizingCell systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
【问题讨论】:
嗨。请参阅下面的答案 【参考方案1】:您也可以将自定义集合视图单元与故事板一起使用。
创建 UICollectionViewCell 的子类。
设置数据源和委托。
按照图片中的建议在情节提要中设置类和标识符。
【讨论】:
是的,我已经做到了。我在 cellForItemAtIndexPath 中遗漏了什么吗?使用故事板时会有所不同。考虑 "dequeueReusableCellWithReuseIdentifier" ,我将提供情节提要中使用的标识符,我做到了,我还缺少什么。 我明白了!我需要将其类型转换为 (TagCollectionViewCell*)【参考方案2】:您是否为您的 CollectionView 设置了数据源和委托。最常见的错误之一。如果需要更多帮助,请告诉我。
【讨论】:
是的,我怎么能忘记。以上是关于CollectionViewCell 问题。从 .xib 到自定义 collectionviewcell 的故事板转换的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 从 CollectionViewCell 中的 UIButton 推送到 ViewController
如何使用 FlipAnimation 从每个 CollectionViewCell 打开一个新的 ViewController 并关闭 Swift 3