私はUITableView
のコンテンツサイズを計算したいと思います。私は高さUITableViewAutomaticDimension
のautolayoutを使用しています。自動レイアウトを使用しているときのコンテンツサイズUITableView
テーブルビューをリロードした後に[UITableView contentsize]
を取得しようとしました。この場合、高さはestimatedRowHeight
に基づいて計算されます。
self.tableView.estimatedRowHeight = 50;
self.tableView.rowHeight = UITableViewAutomaticDimension;
委任 -
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return UITableViewAutomaticDimension;
}
コンテンツのサイズを取得し、高さ制約に割り当てしようとしています。
[self.tableView reloadData];
[self.tableView layoutIfNeeded];
self.tableHeightConstraint.constant = self.tableView.contentSize.height;
前もって感謝します。
編集:
は最後に、私はいくつかの微調整と私の問題を解決しています。私はtableviewの高さをmax(私の場合300は最大)に変更してからテーブルにデータをリロードしたので、tableviewにはすべてのセルのサイズを変更するスペースがあります。
self.tableHeightConstraint.constant = 300;
[self.tableView reloadData];
[self.tableView layoutIfNeeded];
self.tableHeightConstraint.constant = self.tableView.contentSize.height;
ありがとうございました。
問題を詳細に説明できますか? –
tableviewのcontentsizeが必要です。私はcontentsizeに関してtableviewとsuperviewフレームを変更することができます。私はautolayoutとUITableViewAutomaticDimensionを使用しています。それは正確に動作していません。 – OMK
'Autolayout'を使用している場合、フレームを変更することはできません。 'NSLayoutContraints'で遊ぶ必要があります。 –