我必须创建一个社交应用,目前只在用户的新闻Feed中显示20个项目。一旦他们到达底部,就会出现一个"加载更多按钮,然后将稳定扩展到接下来的20个项目。
它非常手动且不太流畅,有没有办法实现自动化?
该功能与Facebook和Twitter非常相似,所以我知道这是可能的,但我的谷歌搜索只是带我到目前为止我还不知道用于此功能的正确术语。 / p>
任何帮助都会很棒!
答案 0 :(得分:1)
一旦用户接近列表末尾,您就可以开始提取下一个项目。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSInteger maximumNumberOfRows = [tableView numberOfRowsInSection:indexPath.section];
if (indexPath.row >= maximumNumberOfRows - kReloadOffset) {
[self fetchNextItemsFromWebserviceWithOffset:maximumNumberOfRows];
}
在fetchNextItemsFromWebserviceWithOffset
中,您可以使用[self.tableView reloadData]
获取更多新闻项并更新表格视图。
答案 1 :(得分:1)
您可以使用此方法在即将结束时获取数据,也可以使用Mark Gibson的代码。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat offsetY = scrollView.contentOffset.y;
CGFloat contentHeight = scrollView.contentSize.height;
if (offsetY > contentHeight - scrollView.frame.size.height - screensizehere*2)
{
if (!isCalling)
{
isCalling = YES;// when you response data change this bool to NO.
[self getdatainbg];//call your service.
}
}
}
也许这会对你有帮助。
答案 2 :(得分:0)
使用表格视图。仅加载20或您需要的任何金额。当你到达滚动的末尾加载另一个2O。它非常简单。您的单元格将一次又一次地重复使用,并且永远不会结束,直到数据可用。
答案 3 :(得分:-1)
让你的UIViewController类监听UIScrollViewDelegate
@interface Yourclass : UIViewController<UIScrollViewDelegate>
/*Your getters & setters, method declarations*/
@end
#pragma mark UIScrollViewDelegate & refresh for auto scroll
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
/*Auto scroll Code.. Raja implemented..*/
if (([scrollView contentOffset].y + scrollView.frame.size.height) == [scrollView contentSize].height) {
[self performSelector:@selector(refreshPage) withObject:nil afterDelay:0.0];
return;
}
}