【发布时间】:2021-12-23 06:11:03
【问题描述】:
我正在尝试在 TableView 中设置动态行高。但不幸的是无法正常工作。
唯一可行的方法是将heightForRowAt indexPath 设置为一个常数。
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 470 //or any other number
}
如果我删除此功能,或尝试将其设置为自动,则单元格将不会显示。像这样的:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
我也试过用:
self.tableView.estimatedRowHeight = UITableView.automaticDimension //Tried even with a number
self.tableView.rowHeight = UITableView.automaticDimension
但除了在heightForRowAt indexPath 函数中使用恒定高度之外似乎没什么用。这不是我想要的,我希望根据单元格内的内容扩展单元格。
我还尝试将 heightForRowAt indexPath 函数中的高度设置为自动,但在单元格 xib 文件的内容中为约束设置了固定高度,仍然相同(我这样做只是为了看看会发生什么)。看来,这个函数有问题。
注意:
我的 TableView 和 UITableViewCell 分为一个storyboard 和一个xib 文件。
【问题讨论】:
-
展示如何限制“单元格内容”。
-
您需要提供足够的内部约束来确定没有明确值的单元格的大小。
标签: ios swift uitableview