【问题标题】:auto loading data when scrolling down in ios application在 ios 应用程序中向下滚动时自动加载数据
【发布时间】:2013-04-27 09:23:56
【问题描述】:

我正在尝试在我的应用程序中执行以下操作:

我从在线服务器获取数据,并将它们放在单元格中,我需要的是在向下滚动时自动加载数据,这意味着例如在应用程序运行时加载 10 个单元格,然后在我向下滚动时加载动态加载其他 10 个单元格。

像下面的例子:

感谢您的提前,

【问题讨论】:

标签: iphone ios


【解决方案1】:

您可以在视图控制器中实现此方法并获取下一条记录

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

        if (([scrollView contentOffset].y + scrollView.frame.size.height) >= [scrollView contentSize].height){

            // Get new record from here
        }
}

这是实现分页的最简单方法。如果你想在底部添加活动指示器,你可以在同一个函数中添加它。

【讨论】:

    【解决方案2】:

    当用户在底部附近滚动时,这会自动加载下一个数据片段:

    #pragma mark - UIScrollViewDelegate
    
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
        if (scrollView.contentSize.height - scrollView.contentOffset.y - scrollView.frame.size.height < 60) {
            [self loadRequest];
        }
    }
    

    【讨论】:

    • 为什么要减去scrollview.frame.size.height?我会刚刚完成 contentSize.height - contentOffset.y
    【解决方案3】:

    试试这个:

    STableViewController

    STableViewController 最适合“加载更多”和“拉动刷新”。

    【讨论】:

      【解决方案4】:

      对于 iOS 6.0,sdk 中有一个名为 UIRefreshControl 的标准控件。 apple doc here

      和其他这里是一步一步的教程give here

      其他可用的开源库。

      1. EGOTableViewPullRefresh
      2. PullToRefresh
      3. SVPullToRefresh
      4. QBRefreshControl
      5. STableViewController

      【讨论】:

        【解决方案5】:

        您可以使用以下方法:

        - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
        {
             //put data on your array 
             [tableView reloadData];
        }
        

        为了更好地理解,请参阅this

        您还将从here获得源代码

        希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-07-05
          • 1970-01-01
          • 1970-01-01
          • 2017-09-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多