1. ホーム
  2. ios

[解決済み] UITableViewのロード終了を検出する方法

2022-04-26 21:37:09

質問

テーブルの読み込みが完了したときのオフセットを変更したいのですが、そのオフセットはテーブルに読み込まれたセルの数に依存します。

uitableviewの読み込みが終了したことを知るためのSDKはありますか?私はデリゲートにもデータソースプロトコルにも何も見当たりません。

可視セルのみ読み込みのため、データソースのカウントが使えないのですが。

どうすればいいですか?

RichXの回答を参考に改善してください。 lastRow は両方可能です。 [tableView numberOfRowsInSection: 0] - 1 または ((NSIndexPath*)[[tableView indexPathsForVisibleRows] lastObject]).row . というわけで、コードはこうなります。

-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if([indexPath row] == ((NSIndexPath*)[[tableView indexPathsForVisibleRows] lastObject]).row){
        //end of loading
        //for example [activityIndicator stopAnimating];
    }
}

UPDATEです。 さて、@htafoyaさんのコメントの通りです。このコードで、ソースからの全データの読み込み終了を検出したいのであれば、それはできませんが、それは本来の質問ではありません。このコードは、表示されるべきセルがすべて表示されたことを検出するためのものです。 willDisplayCell: ここで使用されているのは、スムーズなUIを実現するためです(通常、1つのセルは willDisplay: の呼び出し)。また tableView:didEndDisplayingCell: .