关于我在 swift 中构建的 ios 应用程序,我已经遇到了很长一段时间的问题。我有一个 Uitableview ,具有动态属性,嵌入在我的 View Controller 中。我想要做的是调整所有单元格的大小以填充表格 View 。我试过:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
tableView.reloadData()
let height = tableView.contentSize.height
return height
}
但这只是为 uitableview 的高度返回零。
帮助将不胜感激。
最佳答案
您不想从此委托(delegate)方法调用 reloadData()
,因为正在调用此方法是因为正在重新加载数据。
事实上,如果您的所有单元格都将具有相同的高度,您根本不想使用此方法。只需设置 TableView 的 rowHeight
属性即可。
假设这是从 View Controller 发生的,我将覆盖 viewDidLayoutSubviews()
以在 TableView 大小更改时得到通知并在那里设置行高:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
tableView.rowHeight = tableView.bounds.height
}
您可能需要也可能不需要在那里添加 reloadData()
来更新 TableView 。先试试没有它。设置行高可能会自动触发重新加载。
另请注意,我没有使用 contentSize
来获取高度。这是所有单元格的高度,它由您设置的行高决定。因此,再次使用它会有点循环。
关于ios - 动态更改所有 Uitableviewcells 高度以快速填充 uitableview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35210454/