使用不同类型iphone的自定义单元格计算表格的contentSize.height

neh*_*eha 15 iphone uitableview

在我的应用程序中,tableview具有不同高度的不同类型的自定义单元格.我想在这个tableView下面放一个视图,为此我需要计算表contentView的高度,我该怎么做呢?

之前我曾经这样做过:(noOfRows*cell_height),但那是静态高度.

Thanx提前.

小智 20

UITableView是UIScrollView的子类,因此您可以在tableview上使用实例方法contentSize:

yourtableView.contentSize.height
Run Code Online (Sandbox Code Playgroud)

应该为您提供tableview内容视图的高度

  • 如果您使用具有自定义高度的自定义单元格,则返回0.编辑:如果首先调用`TableView.ReloadData()`,则返回正确的值.:) (7认同)

Ami*_*ndi 11

这是一个老问题,但是,今天我用这个解决了我的问题

  func viewDidLoad() { 
      super.viewDidLoad()

      tableView.rowHeight = UITableViewAutomaticDimension
      tableView.estimatedRowHeight = 44 //  >= 2
    }     

  func getTableViewHeight() -> CGFloat{ 
      tableView.reloadData()
      tableView.layoutIfNeeded()

      return tableView.contentSize.height + tableView.contentInset.bottom + tableView.contentInset.top
    }
Run Code Online (Sandbox Code Playgroud)

  • `tableView.layoutIfNeeded()`是关键! (3认同)

joh*_*n07 5

我在内容视图控制器的viewDidLayoutSubviews()中具有计算高度。为我工作(表格视图自动单元尺寸);

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews();
    let height = table.contentSize.height+table.contentInset.bottom+table.contentInset.top
    preferredContentSize = CGSize(width: 305, height: height);
}
Run Code Online (Sandbox Code Playgroud)


Chr*_*lay 0

我能想到的最简单的事情是将您的视图设置为表格的tableFooterView