検索

ホームページ  >  に質問  >  本文

Objective-c - 最初のいくつかのデータ ソースだけが tableView に表示されません。なぜなら、それらを下にドラッグすると完全に表示されます。

tableView のセルを追加してセルの高さを計算し、プロキシ メソッドを呼び出します。
サーバーがデータ ソースを返したら、tableView を更新します。
ただし、この時に実行されるcellForRowIndexPathのindexPahtは4行目からですが、
最初の数行は飛ばされます、
セルの高さを固定値で書いてみました、
結果細胞の数は正常です。
何が問題ですか?

曾经蜡笔没有小新曾经蜡笔没有小新2827日前626

全員に返信(1)返信します

  • 迷茫

    迷茫2017-05-02 09:31:21

    高さの計算が遅れているはずです。
    tableView の表示順序は大まかに次のとおりです。
    sectionNumbernumberForSection をリクエストして、セクションとセルの合計数を取得します。 sectionNumbernumberForSection 获取一共有多少个section和cell。
    请求 heightForRow:atIndexPath 获取即将显示在界面上的 cell 的高度。
    然后请求 cellForRow 获取这个 cell 的实例。
    然后设置 cell 的高度等,layout 之后调用 willDisplay heightForRow:atIndexPath をリクエストして、インターフェイスに表示されるセルの高さを取得します。

    次に、cellForRow をリクエストして、このセルのインスタンスを取得します。

    その後、セルの高さなどを設定し、レイアウト後にwillDisplayなどのコールバックメソッドを呼び出してインターフェース上に表示します。

    したがって、tableView を更新するとき、高さ部分の処理は、セル インスタンスにセルの高さを計算させてからコントローラーに呼び戻すのではなく、まずデータ ソースに従ってセルの高さを計算する必要があります。もちろん、セル内で計算することもできます。たとえば、セル内には受信セル データに基づいて計算されるクラス メソッドがあり、コントローラーはこのメソッドを積極的に呼び出します。おおよそのコードは次のとおりです:

    コントローラーまたはtableViewのデリゲート実装クラス内:

    リーリー 🎜MyTableViewCell:🎜 リーリー

    返事
    0
  • キャンセル返事