1. ホーム
  2. ios

[解決済み] UITableViewをFacebookアプリのように下までスクロールさせると負荷が大きくなる。

2022-11-16 15:32:21

質問

SQLiteを使用したアプリケーションを開発しています。私は、ページ処理メカニズムを使用してユーザーのリスト(UITableView)を表示したいと思っています。誰かが、ユーザーがリストの最後までスクロールしたときに私のリストに多くのデータをロードする方法を教えてください(Facebookアプリケーションのホームページのように)?

どのように解決するのですか?

のどこにいるのかのチェックを追加すればいいのです。 cellForRowAtIndexPath: というメソッドを使います。この方法は理解しやすく、実装も簡単です.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Classic start method
    static NSString *cellIdentifier = @"MyCell";
    MyCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (!cell)
    {
        cell = [[MyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MainMenuCellIdentifier];
    }

    MyData *data = [self.dataArray objectAtIndex:indexPath.row];
    // Do your cell customisation
    // cell.titleLabel.text = data.title;

    BOOL lastItemReached = [data isEqual:[[self.dataArray] lastObject]]; 
    if (!lastItemReached && indexPath.row == [self.dataArray count] - 1)
    {
        [self launchReload];
    }
}

EDIT : 再帰呼び出しを防ぐために、最後のアイテムのチェックを追加しました。最後のアイテムに到達したかどうかを定義するメソッドを実装する必要があります。

EDIT2 : lastItemReachedについて説明しました。