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