【发布时间】:2017-07-19 06:17:59
【问题描述】:
场景 -
TableView 的高度是相对于 superview 的高度使用纵横比动态设置的。
-
TableViewCell 的高度是根据表格视图的高度计算的:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return tableView.frame.height/2 }
问题 -
最初在委托方法中未正确计算表格视图高度。但在滚动单元格后正确计算。
尝试过的解决方案:
- 重新加载
tableView中的viewDidLayoutSubViews()。 - 在
cellForitemAtIndexPath中调用cell.layoutSubViews()。
有什么解决方案可以正确计算这个 tableView 的高度吗?
【问题讨论】:
-
是直接返回值
tableView.frame.height/2吗?我认为应该是tableView.frame.size.height/2 -
你真正想要计算什么?表视图高度或表视图单元高度?您使用的是自动布局,即基于约束的布局还是基于框架的布局?
-
@Mukesh 两者都有效。
-
请先试用
tableView.layoutIfNeeded(),然后再返回return tableView.frame.size.height/2 -
为什么你使用动态高度却返回一个恒定的高度?如果您希望它是动态的,您不应该返回
UITableViewAutomaticDimension吗?
标签: ios swift uitableview