获取UITableView的高度而不用滚动条

我需要得到UITableView的全部高度(即没有更多的滚动的高度)。 有没有办法做到这一点?

我试过[tableView sizeThatFits:CGSizeZero] ,但是只返回一个0x0 CGSize

4 Solutions collect form web for “获取UITableView的高度而不用滚动条”

尝试contentSize方法,它是从UITableView的超类UIScrollViewinheritance的。 但是,您可能会发现contentSize返回的是错误的或过期的值,因此您应该先调用layoutIfNeeded来重新计算表格的布局。

 - (CGFloat)tableViewHeight { [tableView layoutIfNeeded]; return [tableView contentSize].height; } 

强制Swift 3.02.2的答案。

 var tableViewHeight: CGFloat { tableView.layoutIfNeeded() return tableView.contentSize.height } 

如果表视图的行数发生了变化,而且确实需要知道包含上次更改的表视图的内容大小,我没有发现layoutIfNeeded方法实际上有帮助。

经过一些黑客攻击后,我开始知道如何强制表格视图重新计算其内容大小。 在我的情况下,这足以重置表视图框架,使其工作:

 - (CGSize)com_lohika_contentSize { CGRect theFrame = self.frame; self.frame = CGRectZero; self.frame = theFrame; [self layoutIfNeeded]; return [self contentSize]; } 

尝试传递一个不同的CGSize参数,而不是CGSizeZero。 sizeThatFits:方法使用该参数来计算其结果。 尝试从任何类进行调用传递self.view.size。

  • 在故事板中连接单元原型的出口
  • 减lessUITableView的部分之间的空间
  • 如何使用UITableViewHeaderFooterView?
  • didSelectRowAtIndexPath不工作,Swift 3
  • 如何删除UITableView中最后一个单元格的最后一个边框?
  • 我如何使一个UITableViewCell出现禁用?
  • 当表重新出现时,UITableView不会自动取消选定的行
  • 使用不适用于UITableView seperatorColor?
  • UITableView titleForHeaderInSection显示全部大写
  • 获取button按下UITableView单元格的行
  • 获取UITableViewCell的确切位置