关于我在swift中构建的ios应用程序,我一直有一个问题。我有一个Uitableview,具有动态属性,嵌入在我的视图控制器中。我想要做的是调整所有单元格的大小以填充表格视图。我试过了:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
tableView.reloadData()
let height = tableView.contentSize.height
return height
}
但是这只是uitableview的高度返回零。
非常感谢帮助。
答案 0 :(得分:3)
您不希望从此委托方法调用reloadData()
,因为正在重新加载此方法而调用此方法。
实际上,如果所有单元格的高度相同,则根本不想使用此方法。只需设置表格视图的rowHeight
属性。
假设这是从视图控制器发生的,我会覆盖viewDidLayoutSubviews()
以在表视图大小更改时收到通知并在那里设置行高:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
tableView.rowHeight = tableView.bounds.height
}
您可能需要也可能不需要在其中添加reloadData()
来更新表格视图。先试试吧。设置行高可能会自动触发重新加载。
另请注意,我不使用contentSize
来获得身高。这是所有单元格的高度,它取决于您设置的行高。所以,再次使用它会有点循环。