我添加了一个包含10条记录的tableview
。最后一行是load more records
单元格。在appStore
搜索应用时,如果要显示更多应用,则最后一行显示load more records
(或类似内容)。
现在,如果我有10
条记录,并且第11个单元格显示加载了更多记录,那么当用户点击最后一行时,如何对其进行编程以显示5
条记录。
我将10
条记录存储到数组中,是否可以将5
条记录附加到数组中,而不更改它的顺序?
或者我是否必须使用15条记录加载整个数组,然后将其显示在tableview
中? (我不认为这是最好的方法)
希望我明白我的问题。
抱歉,我没有代码显示我的工作情况,我很难想到解决这个问题。
答案 0 :(得分:3)
请允许我简单解释一下表在iOS中的工作方式。每个表有2个主要组件:要显示的数据和表的视图(显示)。数据是表格的信息来源。任何类型的数据源都可以用作表的数据源(静态信息,如NSString
,数组,可变数组,字典......)。数据源的确切类型取决于应用程序本身。
这些数据必须向用户查看,这是UITableView
的作用。负责将数据加载到视图的代码始终位于函数tableView:cellForRowAtIndexPath:
内。在此函数中,您可以执行加载,还可以指定一些视图属性,例如单元格类型,表格样式......
现在,加载完全按照数据源的相同顺序进行(除非您指定其他方式)。因此,如果您的数据在数组中,则数组的第一个元素将位于表的第一个单元格中,依此类推。
现在回答问题的第一部分,您的数据源应该是什么类型?由于您要定期向数据中添加内容,因此您肯定需要可变类型。这可以是NSMutableArray
或NSMutableDictionary
。当您的信息来源只有一个项目时使用数组,例如您只添加玩家名称,并在您的信息每个单元格中有多个项目时使用词典,如玩家姓名,玩家年龄,玩家得分(并且说你是愿意在单元格中显示所有这些信息;还记得您可以自定义单元格的视图并执行自定义单元格。好吧,为什么可变类型?因为他们允许向他们添加删除项目。如何添加,他们坐在哪里?通常可变类型有addObject
用于添加,新项目总是添加到数组的末尾。
我希望这些解释可以帮助您了解工作原理,以便您可以想象解决问题需要采取哪些解决方案。
对于要注意数据源更改的表,您始终需要调用:
[myTableView reloadData];
重新加载数据将强制再次调用函数tableView:cellForRowAtIndexPath:
并重新加载数据源中找到的所有数据,并确保按照它们在该数据源中的顺序。
答案 1 :(得分:0)
只需将新记录添加到数组中,就像这样
[array addObject:record];
并将记录的内容添加到数组的末尾。 使用
[tableview reloadData];
告诉您的表格视图,可以显示新数据。