2011-02-11 13 views
6

データベーステーブルに10,000行あります。私は、これらのすべての行をテーブルビューにリストすると仮定しているビューを持っています。しかし、すべてをワンショットでロードすると、年齢がかかり、テーブルビューに表示されます。iPhone SDKのTableViewで "Load More Records"を実装する方法は?

一度に20レコードを取得する「追加のレコードを読み込む」機能を使用するにはどうすればよいですか?ユーザーがさらに多くのエントリを表示したい場合は、[Load More Records]ボタンをクリックすると、次の20個のレコードが表示されます。

select文を変更する必要がありますか?これを達成するために他にどのような変更が必要ですか?

答えて

5

UITableViewは、そのセルを再利用します。これは、cellForRowAtIndexPath:が呼び出されたときにデータベースに動的にアクセスできることを意味します.10000個の要素を一度に読み込む必要はありません。私はこれが助けてくれることを願っています。あなたの質問を誤解しているわけではありません。

これはかなり基本的なUITableViewのものですが、開始する必要があります。申し訳ありませんが、Core DataとSQLiteのどちらかについてよく分かりません。

- (UITableViewCell *)tableView:(UITableView *)_tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    UITableViewCell *cell = [_tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ 
      cell = [[[NSBundle mainBundle] loadNibNamed:@"CustomCell-iPad" owner:self options:nil] lastObject]; 
     } 
     else{ 
      cell = [[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] lastObject]; 
     } 
    } 


// Do stuff, load database values, etc 

    return cell; 
} 
+0

サンプルコードはどのように見えますか?あなたは私を見せてくれますか? – meetpd

+0

@meetpd確かに、クラスリファレンスで時間を割いています:http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html – jakev

0

@meetpdその回答ではなく、単なる提案です。

sqliteの代わりにcore dataを使用できます。 20レコードを取得するというあなたの要求を満たすでしょう。コードベースを40%に減らします(Advance Iphone App DevelopmentのBard Larson氏)。使い方が簡単で、sqliteより高速です。あなたはこのようなサンプルコードをチェックアウトすることができます: enter image description here

希望これはあなたのコーディングの多くをお手伝いします。

+0

@meetpd:しましたか?上記の手順を試してください? – kanmani

関連する問題