设置表格视图单元格的动态高度
Posted
技术标签:
【中文标题】设置表格视图单元格的动态高度【英文标题】:Set Dynamic height of a tableview cell 【发布时间】:2021-09-22 11:27:18 【问题描述】:我在表格视图单元格下有一个集合视图。我在集合视图中显示所有标签值。现在我想让表格视图的高度是动态的,以便我可以显示所有数据。用户不需要滚动集合视图。 我在我的项目中使用自动布局。目前,我在 tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) 方法中返回“UITableView.automaticDimension”并使集合视图滚动属性为false。请帮帮我。
【问题讨论】:
【参考方案1】:要使UITableView
s 高度= 到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具有动态高度以上是关于设置表格视图单元格的动态高度的主要内容,如果未能解决你的问题,请参考以下文章