OGeek|极客世界-中国程序员成长平台

标题: ios - Storyboard中的嵌套 CollectionView [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 19:08
标题: ios - Storyboard中的嵌套 CollectionView

我有一个带有单元格的collectionView,然后在这个单元格中又有一个collectionView。这个子 collectionView 再次在其中包含一个单元格。现在我想从父 collectionView 与我的子 collectionView 中的单元格进行通信。如何在 Storyboard 的 swift 3 中做到这一点?如附图所示,我想从第一个 collectionView 与 radio 单元进行通信

enter image description here



Best Answer-推荐答案


  1. 在你的主 ViewController.swift 中符合 UICollectionViewDataSource、UICollectionViewDelegate 协议(protocol)。
  2. 现在从你的 Storyboard中取出你的父 CollectionView 到你的 ViewController.swift。
  3. 然后为您的 UICollectionview 自定义单元格创建一个 Cocoa Touch 类,它是 UICollectionViewCell 的子类,并在此类中获取您的子 CollectionView 的导出。
  4. 现在转到您的 Storyboard并选择您的父 Collectionview 单元格并将其类设置为您的自定义单元格类,然后在属性检查器中为该单元格设置一个标识符。
  5. 现在再次为您的子 UICollectionview 单元格创建类,并执行与父 UICollectionview 相同的操作。
  6. 现在您的 Storyboard中的所有内容都已设置完毕。在此之后,您应该在 UICollectionView 的委托(delegate)方法中为您的过程编写代码。
  7. 现在在你的 ViewController.swift 文件中编写 UICollectionView 的委托(delegate)方法。

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

  8. 现在在你的父 CollectionView 单元类文件中: 还要使其符合 UICollectionViewDataSource、UICollectionViewDelegate 协议(protocol)并为 UICollectionView 编写所有委托(delegate)方法,然后编写以下代码:

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

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

关于ios - Storyboard中的嵌套 CollectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42555022/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4