マイiOSアプリは、次のレイアウトを有するもののUITableViewCellとテーブルビュー(2つのラベルと1つのボタンを含む1 stackview)リサイズUIStackViewユーザがボタンタップするラインのUILabelの数を変更した後
を有します中央のラベルの行数は、0から2になり、次のようになります。
:が今ここに二つの問題があります私は、スタック内の空のビューを追加することから成る問題1ない最適解を発見した細胞
リサイズUIStackView
2)をサイズ変更
1)。 (invalidateIntrinsicContentSizeは機能しませんでした)。
let emptyView = UIView()
emptyView.frame = CGRect(x: 0, y: 0, width: 0, height: 0)
stackView.addArrangedSubview(emptyView)
2番目のスクリーンショットでわかるように、セルのサイズが変更されず、これがスタックビューかセル自体に起因するかどうかはわかりません。
ボタンイベントが内部で処理されるため、UITableViewCellサブクラス内にコードを記述していることを指摘したいと思います。
// dynamic cell sizing
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return CGFloat(cellEstimatedHeight)
}
indexPathのテーブルビューのリロードを開始していますか? –
セルの中からやったよ: 'let tableview = self.superview as? UITableview tableview.reloadData() ' しかしそれは動作しません – Claus
私はそれがちょうど1つの行のために同じになると思います – Claus