在 UITableViewCell 中添加 UICollectionView 时出错

Posted

技术标签:

【中文标题】在 UITableViewCell 中添加 UICollectionView 时出错【英文标题】:Error while adding UICollectionView inside UITableViewCell 【发布时间】:2012-11-16 20:27:27 【问题描述】:

所以我试图在 tableviewcell 中显示水平可滚动的集合视图。我使用的代码是

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = (UITableViewCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UICollectionViewController *cv = [self.storyboard instantiateViewControllerWithIdentifier:@"collectionViewID"];
cv.view.frame = cell.contentView.bounds;
[self addChildViewController:cv];
[cell.contentView addSubview:cv.view];
[cv didMoveToParentViewController:self];  
return cell; 

我收到错误:对象不能为零。如果有人能帮助我理解错误,我将不胜感激。

【问题讨论】:

【参考方案1】:

我已经在我的应用程序中完成了这项工作。

我发现子类化 UITableViewCell 要容易得多。我可以将所有 UICollectionView 设置和 UICollectionView 数据源和委托放在单元格的代码中。

然后我提供了一个 NSArray 类型的公共属性,我将其传递到单元格中。然后,单元格使用这个数组作为它自己拥有的 UICollectionView 的数据源。

使其更易于管理。

【讨论】:

【参考方案2】:

检查你的 UICollectionViewControlle 的属性检查器的标识符值 collectionViewID

编辑 [自我 addChildViewController:cv]; --> 我想你想把 cv 添加到单元格中,不是吗?

【讨论】:

那你为什么不想要self [cell addChildViewController:cv]; 我收到错误“UIView 没有可见的@interface 声明 addchildviewcontrolelr..

以上是关于在 UITableViewCell 中添加 UICollectionView 时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何使用cmake强制UIC在源目录中生成ui_mainwindow.h

如何使用 setupUi 或 uic 输出来创建没有父小部件的独立布局?

UICollectionView 作为子视图不会更新约束

使用 PySide2 开发 Maya 插件系列二:继承 uic 转换出来的 py 文件中的类 Ui_Form

在 UITableViewCell 中添加 UICollectionView 时出错

在 UITableViewCell 子类中添加 CAGradientLayer 需要帮助