2017-03-02 47 views
2

我有一个cellView的collectionView,然后再次在这个单元格中的一个collectionView。这个小孩collectionView又一次有一个单元格。现在我想与父级collectionView中的子级collectionView中的单元通信。在故事板中如何在swift 3中做到这一点?如图所示,图像中的附我想从第一的CollectionView传达给无线电小区故事板中的嵌套CollectionView

enter image description here

+0

您可以在您的父类中创建自定义委托/协议方法,该类可以用于通信。 –

回答

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 { 让细胞= parentCollectionViewOutlt.dequeueReusableCell(withReuseIdentifier: “parentcell”,为:indexPath)作为! ParentCollectionViewCell cell.childCollectionView.reloadData() 恢复单元 }

  8. 现在,在你父母的CollectionView细胞类文件: 此外,它符合协议UICollectionViewDataSource,UICollectionViewDelegate和写入UICollectionView所有的委托方法,然后编写如下代码为:

    倍率FUNC awakeFromNib(){ super.awakeFromNib() childCollectionView.delegate =自 childCollectionView.dataSource =自 childCollectionView.reloadData() }

  9. 现在在cellForItemAt()方法中,通过指定其子标识符来获取子级CollectionView的单元格,然后在其中执行代码并返回您的单元格。在这里你可以做任何你想要在你的子类CollectionView的单元格中做的事情,这意味着你可以在这个类中获得你的子类CollectionView的单元格,以获得你父类CollectionView的自定义单元格。

+0

如果您使用[格式化](https://stackoverflow.com/editing-help#comment-formatting),您的文章将更容易阅读。 – milo526