有没有办法找出表格视图内容的高度,除了从所有部分添加所有单元格的高度?
我有3个部分,每个部分有不同的高度单元格和可变数量的单元格。 所以我希望有一个系统方法来获取表视图内容的高度。
编辑:在其他类似问题的答案中没有说它在哪里调用tableView.contentSize
答案 0 :(得分:5)
您可以通过以下方式检索内容大小:
Swift / ObjC:
let contentSize : CGSize = self.tableView.contentSize
let width = self.tableView.contentSize.width
let height = self.tableView.contentSize.height
您可以使用它来了解您的UITableView
是否已加载(Swift 2.2):
override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
if indexPath.row == (tableView.indexPathsForVisibleRows!.last! as! NSIndexPath).row {
// End of loading
let contentSize : CGSize = self.tableView.contentSize
let width = self.tableView.contentSize.width
let height = self.tableView.contentSize.height
}
}
答案 1 :(得分:2)
使用tableview的内容大小属性来获取其中的内容高度:
tableView.layoutIfNeeded
let tblSize = tbl_Data.contentSize
print(tbl_Data.contentSize.height)
答案 2 :(得分:0)
不要忘记标签数据是否多于1行然后设置标签行 是0。
覆盖func viewDidLoad(){ super.viewDidLoad() //重新加载Tableview tblData.reloadData() }
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("myTableViewCell", forIndexPath: indexPath) as! myTableViewCell
return cell
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
//Content wise tableview height
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
constTblDataHeight.constant = tblData.contentSize
}