1

私はこのようなテーブルビューをしています: enter image description hereグループテーブルビュー、自己サイジングセクションのヘッダーを使用して、リロード後、上にスクロールすると、テーブルビューがジャンプします

私はいくつかのアーキテクチャを試しました。私はこれに関する十分な質問とディスカッションを見つけることができません。私はそれが非常に意味のある質問だと思うので、私はこれらのアーキテクチャの性能と限界を掲示します。

最初に、モデルに応じてコメントが生成されるコメント付きのツイッターとしてセル全体を使用します。セルフサイズの自動レイアウトの高さを使用します。
このアーキテクチャは動作しますが、古いiPhone(4s、5,5sなど)では多くのコメント(30以上)がある場合、fpsは40に下がります。スクロールスムーズのためのブロック。このパフォーマンスボトルネックこのアーキテクチャの唯一の弱点です。

第二に、パフォーマンスのボトルネックのために、私はtwitterセルにコメントテーブルビューを置くことができたと思うかもしれません。また、Twitterセルと埋め込みコメントセルも自己サイジング自動レイアウトの高さを使用します。しかし、埋め込みコメントのtableviewの高さ自体を確認できないため、twitterセルの高さを確認できません。埋め込みコメントのtableviewの高さを計算して、twitterセルの高さを確認する必要があります。このアーキテクチャもうまくいきますが、パフォーマンスのボトルネックは最初のアーキテクチャと同じです。

第三に、最も重要なのは、セクションヘッダーをツイッターとして、コメントとしてセルを使用することです。つまり、セクションはコメントのついた全体のツイッターです.Sectionヘッダーとセルはどちらも自己サイジング自動レイアウトの高さを使用します。
このアーキテクチャーのパフォーマンスは最高です.50以上のコメントを持つtwitterでも、iPhone5でもテーブルビューのスクロールは非常にスムーズですが、fpsは少なくとも55です。しかし、私は解決できない奇妙な問題があります。
私は下にスクロールすると、tableviewは次のページをリロードします。reloadData、最初の小さな問題は、セクションヘッダーの却下ですが、スクロール後に表示されます(後で私はtableviewヘッダーを設定する場合、この問題は消えて、混乱しています).2番目ともっと重要な問題は、もし私が上にスクロールすると、tableviewは "ジャンプ"します。 https://github.com/yutanchi/GroupTableViewSectionHeaderJump/blob/master/tableviewjump.gif
私は理由は、tableviewは推定セクションヘッダーの高さを使用しますが、実際のセクションのヘッダーの高さは使用しないと考えます。私は多くの情報を検索しましたが、何も私を助けることができません。私はとても混乱していますセクションヘッダーのセルフサイジングメカニズムがセルのセルフサイジングメカニズムと同じ場合。セルフサイジングセルが正しい振る舞いを実行できる理由、セルフサイジングセクションヘッダーない。 このアーキテクチャには明らかなパフォーマンス上の利点があるため、自己サイジングセクションヘッダーの何が問題なのかを特定し、これらの厄介な問題を解決し、アーキテクチャを使用したいと考えています。

答えて

0

このために、すべての要素にすべての制約を左上から左に付ける必要があります。また 1でのviewDidLoad属性インスペクタのラベルのゼロの行

self.yourtableView.estimatedRowHeight= your estimated_height_for_Cell 
yourtableView.rowHeight = UITableViewAutomaticDimension 

2設定数以下セット 。

関連する問題