如何在可扩展的表格视图单元中制作动态集合视图

Posted

技术标签:

【中文标题】如何在可扩展的表格视图单元中制作动态集合视图【英文标题】:How to make dynamic collection view inside expendable table view cell 【发布时间】:2020-05-11 06:41:24 【问题描述】:

我必须在表格视图可调整大小的单元格内制作一个带有动态集合视图的屏幕。当用户点击按钮时,单元格将展开并在集合视图中显示数据。

点击 Book 按钮后,我必须显示这种带有动态内容的集合视图

【问题讨论】:

【参考方案1】:

这个问题的答案很广泛。只是我试图在这里解释。请检查:

解决方法如下所示

首先,您需要创建一个表格视图单元格,它将向您显示酒店列表。

然后您需要在 tableview 单元格内设计集合视图,以显示时间。

Tableview 高度应该是动态的。 当您点击 tableview 单元格时,高度应根据 collectionview 数据计数动态增加。

整体结构应该是这样的

你可以通过这个链接 https://medium.com/@gargankit476/multiple-collection-view-in-uitableview-ced7909a5af3

更新:

在 tableview 单元类中添加你的集合视图出口

@IBOutlet weak var collectionView: UICollectionView!

继承委托和数据源:

class TableViewCell: UITableViewCell, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout  ..

在 tableview 单元类中设置 CollectionView 委托和数据源:

override func awakeFromNib() 
  super.awakeFromNib()
  self.collectionView.delegate = self
  self.collectionView.dataSource = self
  //other stuff

【讨论】:

我做的完全一样,当我点击单元格时。单元格正在自动调整大小,但没有获得集合视图。在重新加载行之前,我在“didSelectRowAt indexPath”中调用集合视图委托和数据源。 请展示您的尝试。显示 collectionview 数据源和相应的代码。以及您将集合视图委托数据源方法放在哪里? 请查看更新后的答案。看来您的集合视图委托和数据源未与视图连接。请检查您的集合视图方法是否被调用?如果它调用那么请检查数据源计数是否为空?【参考方案2】:

我有办法设计这种类型的屏幕。我必须使集合视图高度动态化,所以我为此使用了以下语句。

self.invalidateIntrinsicContentSize()

我想参考以下文章来帮助所有面临相同问题或将来可能会面临的问题。

“https://www.freecodecamp.org/news/how-to-make-height-collection-views-dynamic-in-your-ios-apps-7d6ca94d2212/”

【讨论】:

以上是关于如何在可扩展的表格视图单元中制作动态集合视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ios 中创建可扩展的表格视图?

自动大小表格视图单元格扩展高度中的嵌套水平集合视图使集合视图滚动重置当重新加载单元格以累积行

如何在可扩展列表视图中绑定 Json 数据?

在可重复使用的表格视图单元格中自动触摸按钮

如何在可扩展列表视图 Kotlin 中获取标题中的子项计数

ios的可扩展单元格表格视图最佳实践