【问题标题】:How to implement "Load More Records" in TableView in iPhone SDK?如何在 iPhone SDK 的 TableView 中实现“加载更多记录”?
【发布时间】:2011-06-25 08:29:55
【问题描述】:

我在数据库表中有 10,000 行。我有一个视图,它假设在 tableview 中列出所有这些行。但是一次性加载所有内容需要很长时间才能出现在 tableview 中。

我们如何使用“加载更多记录”功能来一次获取 20 条记录?如果用户想查看更多条目,他们可以点击“加载更多记录”按钮,它将显示接下来的 20 条记录。

是否需要修改我的选择语句?为了实现这一目标,我还需要做哪些其他更改?

【问题讨论】:

    标签: iphone objective-c sqlite iphone-sdk-3.0 ios4


    【解决方案1】:

    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;
    }
    

    【讨论】:

    【解决方案2】:

    感谢大家的投入。但我能够使用下面的链接来实现这一点:

    http://useyourloaf.com/blog/2010/10/2/dynamically-loading-new-rows-into-a-table.html

    希望对大家有用。

    【讨论】:

      【解决方案3】:

      @meetpd 这不是一个答案,只是一个建议。

      您可以使用core data 代替sqlite。它将满足您获取 20 条记录的要求。它将您的代码库减少到 40%(正如 Bard Larson 在 Advance Iphone App Development 中所说)。它比 sqlite 易于使用且速度更快。您可以像这样查看示例代码:

      希望这会对您进行大量编码有所帮助。

      【讨论】:

      • @meetpd:你试过上面的步骤了吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多