Storyboard中的嵌套CollectionView

时间:2017-03-02 12:03:45

标签: ios swift3

我有一个带有单元格的collectionView,然后又在这个单元格中有一个collectionView。这个子collectionView再次有一个单元格。现在我想从父collectionView与我的子collectionView中的单元格进行通信。如何在故事板中的swift 3中做到这一点?如附图所示,我想从第一个collectionView到无线电单元进行通信

enter image description here

2 个答案:

答案 0 :(得分:0)

请点击此链接 https://ashfurrow.com/blog/putting-a-uicollectionview-in-a-uitableviewcell/ 在本教程中,仅针对一个更改解释了相同的方案 在UICollectionView中添加UITableViewCell

通过以上链接,尝试实施。它会帮助你

答案 1 :(得分:0)

  1. 在您的主ViewController.swift中,将其符合协议UICollectionViewDataSource,UICollectionViewDelegate。
  2. 现在,从您的故事板中,将您的父CollectionView的出口带到ViewController.swift。
  3. 然后创建一个Cocoa Touch类,它是UICollectionViewCell的子类,用于UICollectionview的自定义单元格,并在此类中使用您的子CollectionView的出口。
  4. 现在转到故事板并选择您的父级Collectionview单元格并将其类设置为自定义单元格类,然后在“属性”检查器中为此单元格设置标识符。
  5. 现在再次为您的子UICollectionview单元格创建类,并执行与父UICollectionview相同的操作。
  6. 现在一切都在你的故事板中设置。在此之后,您应该在UICollectionView的委托方法中编写过程的代码。
  7. 现在在ViewController.swift文件中编写UICollectionView的委托方法。

    func collectionView(_ collectionView:UICollectionView,cellForItemAt indexPath:IndexPath) - > UICollectionViewCell     {         让cell = parentCollectionViewOutlt.dequeueReusableCell(withReuseIdentifier:“parentcell”,for:indexPath)as! ParentCollectionViewCell          cell.childCollectionView.reloadData()         返回细胞     }

  8. 现在在您的父CollectionView单元类文件中: 也使它符合协议UICollectionViewDataSource,UICollectionViewDelegate并为UICollectionView编写所有委托方法,然后将以下代码写为:

    覆盖func awakeFromNib(){         super.awakeFromNib()       childCollectionView.delegate = self       childCollectionView.dataSource = self       childCollectionView.reloadData()     }

  9. 现在,在cellForItemAt()方法中执行相同的过程,通过指定其标识符来获取子CollectionView的单元格,然后在其中执行代码并返回单元格。在这里,您可以在您的子CollectionView的单元格中执行任何操作,这意味着您可以在此类中访问您的子CollectionView的单元格,以获取父CollectionView的自定义单元格。