通常,当我想设置行高时,请设置
## Reproducible e.g.
dir.create("path/to", recursive=TRUE)
cat("Hello world", "path/to/eg.Rmd")
## Check how it works
ezknitr::ezknit("path/to/eg.Rmd")
dir("path/to/")
[1] "eg.html" "eg.md" "eg.Rmd"
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 300
}
什么时候应该使用它?
更新!如果我想设置estimatedHeightForRowAt:
estimatedHeightForRowAt
更新:
如果我提供了我的愿望估计,那么是否有任何影响tableview滚动? 。例如,我在估计的HeightForRowAt 500中给出
答案 0 :(得分:4)
如果表格包含可变高度行,计算所有高度可能会很昂贵,因此会导致更长的加载时间。使用估计允许您将几何计算的一些成本从加载时间推迟到滚动时间。
答案 1 :(得分:1)
如果您的某些自定义单元格的高度与其他大多数单元格不同,则此差异会变得更有意义。在这种情况下,操作系统使用estimatedHeightForRowAt
作为默认值(这会优化您的加载时间),但如果为行指定了不同的高度,那么它将使用它。
至于放在那里:
如果没有变化,那么你将相同的300.基本上你把你的默认/最期望的高度放在那里。对于heightForRowAt,根据您的需要,您可能需要switch based on section/row并更改身高。如果没有任何变化,那么仍然只需要300那里
我不确定这是不是你问的原因,但是如果你因为你有不同高度的动态tableViewCells而问这个,那么解决方案就是:
rowHeight
设置为UITableViewAutomaticDimension
。 estimatedRowHeight
或实施身高估算委托方法。基本上做:
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.estimatedRowHeight = 80 // or any other number that makes sense for your cells
self.tableView.rowHeight = UITableViewAutomaticDimension
}
有关详情,请参阅此RW Tutorial以及此高票question