如何根据swift 3中的集合视图高度动态增加表格视图高度?

Posted

技术标签:

【中文标题】如何根据swift 3中的集合视图高度动态增加表格视图高度?【英文标题】:how to increase table view height dynamically according to collection view height in swift 3? 【发布时间】:2017-12-19 07:37:59 【问题描述】:

在这里,我有一个如下所示的设计,其中我设计了除最后一个单元格之外的所有单元格,其中它有一个集合视图,我需要在其中加载数据并且这是有分页的,所以如何为此指定高度当集合视图高度根据我的数组计数动态增加时的单元格。谁能帮助我如何动态给出高度或任何建议/想法来实现这个?

给定以下结构:

表格视图

表格视图单元格

表格视图单元格

TableViewCell

集合视图

CollectionViewCell

CollectionViewCell

CollectionViewCell

[...可变数量的单元格或不同的单元格大小]

【问题讨论】:

试试self.tableView.rowHeight = UITableViewAutomaticDimension; self.tableView.estimatedRowHeight = 44.0; // set average estimated height 但是集合视图增加了表格视图单元格高度的了解方式,正如你所说的@Priya 将所有必需的约束添加到tableview单元格内的集合视图中,它将根据内容自动增加其高度。 你有没有通过嵌入集合视图给表格视图单元格提供约束来检查它不会增加表格视图单元格的高度@Priya 【参考方案1】:

    将表格视图行高设置为自动尺寸tableView.rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = 44

    tableViewCell 内为collectionView 的高度创建IBOutlet。在collectionView 内为collectionView 设置leadingtrailingtopbottom 约束。

    tableViewCell 下为collectionView 创建 outlet(如 objCollectionView),并在 cellForRowAt indexPath 方法中添加以下代码

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    
            let cell = tableView.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath) as! tableCell
            cell.frame = tableView.bounds
            cell.layoutIfNeeded()
            cell.objCollectionView.reloadData()
            cell.objCollectionViewHeightConstraint.constant = cell.objCollectionView.contentSize.height
            return cell;
    
    
    

这会根据内容自动调整tableViewCell的高度。

【讨论】:

我需要为表格视图单元格内的集合视图实现分页是否可能? 是的,它也可以进行分页 collectionView 的滚动方向是什么 垂直方向 你面临的问题是什么?

以上是关于如何根据swift 3中的集合视图高度动态增加表格视图高度?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据标签文本快速更改表格视图单元格高度?

swift,如何使表格视图单元格具有动态高度[重复]

使用Objective C增加单元格数量时如何动态增加UITableView高度?

如何在 swift 中增加 ScrollView 中的 UITableView 高度

如何动态增加滚动视图中两个表格视图的高度

根据滚动视图上的内容增加表格视图高度