gpt4 book ai didi

iphone - 当用户滚动 UITableView 时从 Web 服务加载更多数据

转载 作者:行者123 更新时间:2023-12-03 20:28:36 28 4
gpt4 key购买 nike

我正在编写一个与 Web 服务集成的 iPhone 应用程序。我将从网络服务获取数据并用它填充表格 View 。我的问题:当用户滚动表格 View 时,我希望从 Web 服务动态加载更多数据并填充表格 View 。

有什么想法吗?非常感谢!

最佳答案

Facebook 的 three20图书馆有一个TTTableViewControllerTTTableViewDataSource它允许您从互联网加载内容。我认为这就是您正在寻找的。

更新 Three20 似乎不再维护,因此请忽略上面的链接。下面的答案应该足够了。

如果您希望自己做事而不是使用 Three20,那么您可以实现 UITableViewDelegate-tableView:willDisplayCell:forRowAtIndexPath:在你的 TableView Controller 中。当用户滚动到 TableView 中的最后一个(部分,行)时(您可以从索引路径中知道),只需进行异步http调用并在内容到达时重新加载 TableView 。

// YourTableViewController.m

// Assuming your table view's controller is a subclass of UITableViewController
// if its not, you will need to manually set your table view's delegate to this class
// i.e. self.tableView.delegate = self;

// if a table view's delegate implements -tableView:willDisplayCell:forRowAtIndexPath:
// the table view will call this method before displaying any cell

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == lastSection && indexPath.row == lastRowInLastSection) {
// assuming you use ASIHTTPRequest
NSURL *url = [NSURL URLWithString:@"http://your-webservice.example.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
}

// ASIHTTPRequest calls this method when it gets a response for a HTTP request
- (void)requestFinished:(ASIHTTPRequest *)request {
// you can get the response data from
// [request responseString] or
// [request responseData]
...update your data source...
[self.tableView reloadData];
}

关于iphone - 当用户滚动 UITableView 时从 Web 服务加载更多数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6314476/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com