私が実行している更新されていません。特にテーブルをスクロールしてビューを再利用すると、高さが適切に計算されません。ときにはUILabelが折り返されることがあります。時には切り捨てられることもあります.1つ以上のラベルが表示されないことがあります。また、ラベル間に余分な間隔があることもあります。カスタムビューには、3つのUILabelを含む垂直UIStackViewが含まれます。そのうち1つがラップされます。のUITableViewのセクションヘッダーの自動身長はラップUILabel(<em>numberOfLines = 0</em>)を含有して自動/ダイナミックのUITableViewのセクションヘッダビューの問題に適切に
問題を示す完全なサンプルアプリは、https://github.com/outerstorm/tableviewHeaderTestにあります。
セクションヘッダの高さは、以下でのviewDidLoadで自動に設定されています
tableView.sectionHeaderHeight = UITableViewAutomaticDimension
tableView.estimatedSectionHeaderHeight = 30.0
ともちょうどそれが動作するように取得しようとするには、以下のheightForHeaderInSectionを実装している:
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return UITableViewAutomaticDimension
}
私が持っていますまた、のsetNeedsLayout()とlayoutIfNeeded()を無駄に呼び出してみました。どんな提案も大歓迎です。
以下は、アプリで見られる動作のスクリーンショットです。最初のセクションでは、カットオフで、2番目のセクションでは、あまりにも背が高いです:
これは仮想化と絡み合っていません。セルはデキューされ、発生するたびにリサイズする必要があります。そうでなければ、仮想化は壊れています。 – Tim