複数の行を保持できる2つのラベルを持つTableViewフッタービューがあります。 私はviewDidLayoutSubviewsでこのコードを使用しています:これは(ラベルが最終的に倍数ラインの上に広がっていくとビューのサイズを調整している)のビューが表示される前に、ラベル値が設定されている時に正常に動作している自動レイアウトを使用して動的なTableViewフッター(セクションフッターではない)をリフレッシュする方法
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
label1.preferredMaxLayoutWidth = tableView.frame.size.width - Constant.footerMarginSpace
label2.preferredMaxLayoutWidth = tableView.frame.size.width - Constant.footerMarginSpace
footerView.setNeedsLayout()
footerView.layoutIfNeeded()
footerView.frame.size.height = footerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
tableView.tableFooterView = footerView
}
後で内容を更新すると、tableView.reloadData()を使用していても、ビューはそのレイアウトを更新しません。
私のビューの上に別のビューを押して、それを閉じると、レイアウトは正しいでしょう。
TableViewフッターのレイアウトとサイズを更新する適切な方法は何ですか?
編集後にtableView.tableFooterView.layoutIfNeeded()を試してください。 –