2017-04-27 16 views
0

どういうわけか私は自分のViewControllerのviewDidLoadでテーブルの総高さを計算する必要がある状況に陥ってしまいました。動的なrowHeightでUITableviewのコンテンツの高さを計算する

私はscrollViewでviewControllerを持っています。そのscrollViewには、TableViewControllerサブクラスを含む2つのコンテナビューがあります。これらのテーブルの多くのセルになることはないため、これらのtableViewsのスクロールが無効になりました。そして私はこれらの2つのコンテナビューの上下に固定サイズのビューをいくつか持っています。これらのビューはすべて垂直のスタックビュー内に積み重ねられています。このスタックビューとそのスクロールビューのサイズを変更するには、他のすべてのサイズが固定されているので、コンテナビューのサイズが必要です。

コンテナビュー内のテーブルの合計高さを計算します。彼らのサイズを計算する方法はありますか?私はAutoLayoutを使用しています。

答えて

0

これは、テーブルビューのすべてのセルが作成された後に行う必要があるため、テーブルビューが最初は十分に大きくなければならないため、やりにくいです。そして、それがいつ終わるかを知るという問題があります。 UITableViewControllerを使用する必要がありますか?この種のケースでは、UITableViewCell xibsを通常のビューxibsに変換するか、コードで記述し、プログラムでコンテナビューに追加します。次に、高さを得るようにレイアウトを強制することができます。それとも、この場合には高さは必要ありません。自動レイアウトですべてのことができます。

0

これを試してみてください:

func viewDidLayoutSubviews(){ 
    tableView.frame = CGRect(x: tableView.frame.origin.x, y: tableView.frame.origin.y, width: tableView.frame.size.width, height: tableView.contentSize.height) 
    tableView.reloadData() 
} 
関連する問題