设置表格视图单元格的动态高度

Posted

技术标签:

【中文标题】设置表格视图单元格的动态高度【英文标题】:Set Dynamic height of a tableview cell 【发布时间】:2021-09-22 11:27:18 【问题描述】:

我在表格视图单元格下有一个集合视图。我在集合视图中显示所有标签值。现在我想让表格视图的高度是动态的,以便我可以显示所有数据。用户不需要滚动集合视图。 我在我的项目中使用自动布局。目前,我在 tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) 方法中返回“UITableView.automaticDimension”并使集合视图滚动属性为false。请帮帮我。

【问题讨论】:

【参考方案1】:

要使UITableViews 高度= 到tableview 的内容,您可以使用table.contentSize.height 属性。请参阅以下内容,

    由于您使用的是自动布局,请为您的 tableview 高度约束创建一个 @IBOutlet
@IBOutlet var tableHeightAnchor: NSLayoutConstraint!
    更新表格时,将内容高度设置为tableHeightAnchor.constant 的新值

override func viewWillLayoutSubviews() 
    super.updateViewConstraints()
    self.tableHeightAnchor!.constant = tableView.contentSize.height // Setting new height

.
.
.
tableview.reloadTable()        // If you are reloading your tableview 
self.viewWillLayoutSubviews()  // This is required
    接下来,您可以根据 tableview 的高度来设置单元格的高度。
tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) 
    let height = tableview.bounds.height
    return height/items.count

【讨论】:

实际上,我在该表格视图中有多个单元格,并且集合视图位于第 0 节索引中,因此我认为此答案不适用于这种情况 您可能需要更正您的问题,因为它有点误导。所以你想让collectionview有一个动态的高度? 是的,我希望collectionview具有动态高度

以上是关于设置表格视图单元格的动态高度的主要内容,如果未能解决你的问题,请参考以下文章

动态更改表格视图单元格的高度

具有动态高度单元格但所有单元格同时显示的 iOS 表格视图

如何动态更改自定义单元格的表格视图单元格的高度?

将动态单元格的表视图内容高度设置为表视图高度约束 ios

设置表格视图单元格的高度以匹配底部到标签栏顶部

设置 tableviewcell 高度以显示具有动态高度单元格的完整内部/嵌套 uitableview