UITableView
私はセルの高さが自動レイアウトに基づいて自動です。私がサブビューを追加するまでは、レンダリングされたセルの最終的な幅に基づいてカスタムの方法で高さが変わります。実際の幅に基づいてUITableViewCellサブビューの制約を更新するタイミングと場所
要するに、私はカスタム数のビューを表示する必要があり、可視の数はセルの幅に依存し、ビューの数も高さに影響します。
問題は現在、問題のサブビューでlayoutSubviews
で計算と表示操作を行っていますが、これはテーブルビューのセルの高さが大きく外れることにつながります。だから私は計算を行う必要があると信じて&ビューを追加/削除するので、autolayoutは正確なテーブルビューのセルの高さを計算できますが、実際には正確な幅でセルを計算します。
さまざまな場所で強制的にsetNeedsLayout
およびlayoutIfNeeded
がこの問題を解決していません。
興味深いことに、これは、高さをスクロールして自分自身を修正し、最終的にはすべてのセルが正しい高さになる状況の1つです。それは物事は非常にオフであることをテーブルビューの最初の負荷にあるようだ。
ビューの数は高さにどのように影響しますか?たぶんワイドディスプレイで1列の表示を、狭いディスプレイで2行を表示していますか? – DonMag
しかし、セルの幅はUITableViewでは変更されません。あなたは、レイアウトを固定した2つのセル(および2つの再利用識別子)を使用する方が良いでしょう。その後、ロジックを 'cellForRow'メソッドに移動し、正しいセルタイプをデキューします。 – Fogmeister
@DonMag私は、セルの幅に完全に収まる一連のサムネイルを表示しています。固定されたアスペクト比が与えられていると、視認可能なビューの数はその行の高さに影響します。 – Sencha