在tableView中实现“更多”按钮,而无需再次重新加载整个tableView

时间:2013-09-19 11:49:50

标签: iphone ios objective-c uitableview

我正在开发一个iOS应用程序,其中我有一个UITableView,其中包含来自Web服务的人员列表,我在底部有一个更多按钮。当用户点击更多时,它会调用一个为列表提供一些新人的服务。现在我想用上一个tableView列表添加这个列表而不重新加载整个tableView。我如何实现这一目标。

enter image description here 任何帮助都会非常明显。我可以提供更多按钮代码,我可以调用该服务从服务中获取数据。

4 个答案:

答案 0 :(得分:3)

UITableview提供了几个用于操作内容的API。你应该使用

- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation: (UITableViewRowAnimation)animation;

方法。 Table View Programming Guide

中描述了应用它们的方式

实际上,当单击该按钮时,您启动名称列表的网络请求,完成后,使用上述API将行添加到表中。

注意:只要您对表视图进行此修改,就不必使用beginUpdatesendUpdates方法。如果一次执行多项更改(删除,添加,重新排序),则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,它将在表中显示新添加的名称。

希望这会有所帮助。