我在数据库表中有10,000行。我有一个视图,假设在tableview中列出所有这些行。但是在一次拍摄中加载所需的时间需要很长时间才会出现在tableview
我们如何使用“加载更多记录”功能,一次可以获取20条记录?如果用户想要查看更多条目,可以单击“加载更多记录”按钮,它将显示接下来的20条记录。
是否必须修改我的select语句?为实现这一目标,我还需要做些哪些改变?
答案 0 :(得分: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;
}
答案 1 :(得分:5)
感谢大家的投入。但我能够使用以下链接实现这一点:
http://useyourloaf.com/blog/2010/10/2/dynamically-loading-new-rows-into-a-table.html
希望这对所有人都有用。
答案 2 :(得分:0)
@meetpd这不仅仅是一个建议的答案。
您可以使用core data
代替sqlite
。它将满足您提取20条记录的要求。它会将您的代码基数降低到40%(正如Bard Larson在Advance Iphone App Development中所说的那样)。它比sqlite更容易使用和更快。您可以查看示例代码,如下所示:
希望这会帮助你进行大量的编码。