如何在UICollectionViewCell中添加UICollectionView?

时间:2017-03-13 15:24:21

标签: ios swift uicollectionview uicollectionviewcell

我有一个使用可视XIB文件创建的UICollectionViewCell。

水平显示集合视图。

我想在单元格的页脚中向此单元格添加另一个UICollectionView。

细胞本身就是一张卡片"代表一些信息;

此图表有助于说明我之后的内容;

Card diagram

我的想法是,我可以根据需要显示/隐藏骰子图像,包括零;以横向方式作为当前UICollectionCell内部的子部分。

尝试使用Storyboard;

  • 收集单元格XIB不允许我添加另一个UICollectionView
  • 如果我在同一个故事板中创建一个独立的UICollectionView,它就不会让我向它添加一个UICollectionCell

我到目前为止唯一的解决方案是手动创建5张图像视图,然后将它们附加到收集插座;然后我需要做一个for循环来显示/隐藏每个骰子图像。

2 个答案:

答案 0 :(得分:1)

  1. 在界面构建器
  2. 中创建带有集合视图的普通View Controller
  3. 在单独的XIB中创建CollectionViewCell。在此单元格内插入另一个CollectionView
  4. 在第一个VC寄存器中,collectionViewCell为sectionHeader:

    tableView.register(UINib(nibName: DashboardPagerHeader.cellIdentifier, bundle: nil), forHeaderFooterViewReuseIdentifier: DashboardPagerHeader.cellIdentifier)
    
  5. 在单独的xib中创建另一个CollectionViewCell,如之前的

  6. 在步骤4中创建的awakeFromNib寄存器单元格中的第一个集合视图单元格的内部类似:

    override func awakeFromNib() {
       super.awakeFromNib()
       collectionView.delegate = self
       collectionView.dataSource = self
       collectionView.register(UINib(nibName: "  DashboardHeaderCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: DashboardHeaderCollectionViewCell.cellIdentifier)
    }
    

答案 1 :(得分:1)

你不需要tableview只是在你的collectionview单元格中xib拖动另一个集合并将其滚动属性设置为vertical,然后从内部collectionview创建xib。

在外集合视图单元格中,使用该方法设置委托和数据源

// code
override func awakeFromNib() {
   super.awakeFromNib()
   serInnerCollectionView()
}

 func serInnerCollectionView() {

 collectionViewInner.delegate = self
   collectionViewInner.dataSource = self
   collectionViewInner.register(UINib(nibName: "  FooterCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "FooterCollectionViewCellIdentifier")

}