我正在开发一个iOS应用程序,其中我有一个UITableView,其中包含来自Web服务的人员列表,我在底部有一个更多按钮。当用户点击更多时,它会调用一个为列表提供一些新人的服务。现在我想用上一个tableView列表添加这个列表而不重新加载整个tableView。我如何实现这一目标。
任何帮助都会非常明显。我可以提供更多按钮代码,我可以调用该服务从服务中获取数据。
答案 0 :(得分:3)
UITableview提供了几个用于操作内容的API。你应该使用
- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation: (UITableViewRowAnimation)animation;
方法。 Table View Programming Guide。
中描述了应用它们的方式实际上,当单击该按钮时,您启动名称列表的网络请求,完成后,使用上述API将行添加到表中。
注意:只要您对表视图进行此修改,就不必使用beginUpdates
,endUpdates
方法。如果一次执行多项更改(删除,添加,重新排序),则beginUpdates
/ endUpdates
是必需的。
答案 1 :(得分:0)
查看UITableView's - beginUpdates;和- endUpdates方法。
在调用它们之间,你必须将行插入表视图中。如果您使用UITableView's - insertRowsAtIndexPaths:withRowAnimation:方法,您甚至可以跳过begin-
和endUpdates
。
确保在调用insertRowsAtIndexPaths:withRowAnimation:
之前将新对象插入数据源对象。
答案 2 :(得分:0)
如果你不想重新加载表格,那么至少你必须打电话
insertRowsAtIndexPaths: withRowAnimation:
除了您无法在表格视图中显示新添加的数据。
答案 3 :(得分:-1)
根据我的经验,It is not possible
在表格视图中添加/显示新名称而不重新加载。
但您可以按照以下方式完成任务;
您可以设置arraCount(one varaible) for namesArray count
。在调用webservice之后,您可以increment arrayCount varaiable and reload the table view
,它将在表中显示新添加的名称。
希望这会有所帮助。