0

Webサービスを呼び出すiPhoneアプリを書いています。Webサービスがjsonオブジェクトで1000個の要素を返すとします。解析には時間がかかる可能性があるため、1000個すべてをロードしたくありません。私がやりたいのは、jsonオブジェクトから作成したNSDictionaryの最初の15要素をロードし、ユーザーがテーブルビューの一番下までスクロールすると、「さらにロード...」という16行目が表示されるようにすることです。NSDictionaryオブジェクトにすべてのデータがすでに保存されているので、これを分割して15を返す方法があります。次に、ユーザーは[さらに読み込む...]をクリックすると、次の15を読み込み、そこまで続行します。 NSDictionaryにはこれ以上の要素はありませんか?私は自分のコードの例を提示することができますが、これを達成する方法の例を誰かが持っているかどうか疑問に思っています。よろしくお願いします。

4

2 に答える 2

1

UITableView がこれを行うと思います。目に見えるセルだけが構築されます。下にスクロールすると、それらのメモリは次の行と交換されます。車輪を再発明する意味がわかりません。

また、メモとして、表示されているセルのみが「解析」されます。ロード時にデータソース内のすべてのアイテムのセルを構築するわけではありません。

于 2012-10-10T17:59:08.297 に答える
0

私があなたの言うことを正しく聞いていると仮定すると、これを機能させるには少しトリッキーなロジックが必要なだけだと思います

いつでも表示したい行の量を掛けるインデックスオフセットを維持するだけです(あなたの場合は15)

あなたのロジックは、最終的に許可する行数 + 1 を常に返すことです。例: _indexOffset * 15 + 1 を返します。//numberOfRowsForSection について

didSelectIndexPathOf で、最後の行かどうかを確認します。

if(indexPath.row == _indexOffset * 15)
{
     _indexOffset ++;
     [tableView reloadData];
}

これは正確な答えではありませんが、始めることができると思います

于 2012-10-10T17:54:30.937 に答える