Библиотека Facebook three20 имеет TTTableViewController и TTTableViewDataSource , который позволяет загружать контент из Интернета. Я думаю, это то, что вы ищете.
UPDATE three20, похоже, больше не поддерживается, поэтому игнорируйте ссылки выше. Ответа ниже должно быть достаточно.
Если вы хотите сделать что-то самостоятельно, а не использовать Three20, тогда вы можете реализовать UITableViewDelegate -tableView:willDisplayCell:forRowAtIndexPath:
в вашем контроллере табличного представления. Когда пользователь прокручивает до последнего (раздел, строка) в вашем табличном представлении (которое вы можете узнать по пути индекса), просто сделайте асинхронный вызов http и перезагрузите табличное представление при поступлении контента.
// 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];
}