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

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

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

【问题讨论】:

    标签: swift xcode uitableview uicollectionview


    【解决方案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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 2017-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多