向tableview添加更多记录

时间:2012-02-01 15:54:55

标签: iphone objective-c cocoa-touch

我添加了一个包含10条记录的tableview。最后一行是load more records单元格。在appStore搜索应用时,如果要显示更多应用,则最后一行显示load more records(或类似内容)。

现在,如果我有10条记录,并且第11个单元格显示加载了更多记录,那么当用户点击最后一行时,如何对其进行编程以显示5条记录。

我将10条记录存储到数组中,是否可以将5条记录附加到数组中,而不更改它的顺序?

或者我是否必须使用15条记录加载整个数组,然后将其显示在tableview中? (我不认为这是最好的方法)

希望我明白我的问题。

抱歉,我没有代码显示我的工作情况,我很难想到解决这个问题。

2 个答案:

答案 0 :(得分:3)

请允许我简单解释一下表在iOS中的工作方式。每个表有2个主要组件:要显示的数据和表的视图(显示)。数据是表格的信息来源。任何类型的数据源都可以用作表的数据源(静态信息,如NSString,数组,可变数组,字典......)。数据源的确切类型取决于应用程序本身。

这些数据必须向用户查看,这是UITableView的作用。负责将数据加载到视图的代码始终位于函数tableView:cellForRowAtIndexPath:内。在此函数中,您可以执行加载,还可以指定一些视图属性,例如单元格类型,表格样式......

现在,加载完全按照数据源的相同顺序进行(除非您指定其他方式)。因此,如果您的数据在数组中,则数组的第一个元素将位于表的第一个单元格中,依此类推。

现在回答问题的第一部分,您的数据源应该是什么类型?由于您要定期向数据中添加内容,因此您肯定需要可变类型。这可以是NSMutableArrayNSMutableDictionary。当您的信息来源只有一个项目时使用数组,例如您只添加玩家名称,并在您的信息每个单元格中有多个项目时使用词典,如玩家姓名,玩家年龄,玩家得分(并且说你是愿意在单元格中显示所有这些信息;还记得您可以自定义单元格的视图并执行自定义单元格。好吧,为什么可变类型?因为他们允许向他们添加删除项目。如何添加,他们坐在哪里?通常可变类型有addObject用于添加,新项目总是添加到数组的末尾。

我希望这些解释可以帮助您了解工作原理,以便您可以想象解决问题需要采取哪些解决方案。

对于要注意数据源更改的表,您始终需要调用:

[myTableView reloadData];

重新加载数据将强制再次调用函数tableView:cellForRowAtIndexPath:并重新加载数据源中找到的所有数据,并确保按照它们在该数据源中的顺序。

答案 1 :(得分:0)

只需将新记录添加到数组中,就像这样

[array addObject:record];

并将记录的内容添加到数组的末尾。 使用

[tableview reloadData];

告诉您的表格视图,可以显示新数据。