ios中uiscrollview的底部刷新控制

时间:2016-06-08 06:42:56

标签: ios objective-c uiscrollview uirefreshcontrol

如何在UIScrollView的底部添加UIRefreshController。 我正在UIScrollView中实现load more选项,这样我就可以将更多数据加载到scrollview中。

提前致谢...

3 个答案:

答案 0 :(得分:0)

UIRefreshControl只能在UITableView中使用,就像苹果文档中所说:

Because the refresh control is specifically designed for use in a table view that's managed by a table view controller, using it in a different context can result in undefined behaviour.

答案 1 :(得分:0)

将您的数据放入表格视图中,然后使用标准UITableViewDelegate回调即可轻松完成此操作。不要试图操纵Apple自己的UIRefreshControl进入表格底部或滚动视图,因为它会以麻烦结束。

这样做:

tableView:numberOfRowsInSection:返回data.count+1

tableView:cellForRowAtIndexPath:支票if (indexPath.row == data.count)中。如果是这样,创建并返回一个基本单元格,其文本标签设置为“加载更多...”

再次tableView:didSelectRowAtIndexPath:检查if (indexPath.row == data.count)。如果是,请触发您自己的[self loadMoreData]方法,然后拨打[self.tableView reloadData]

答案 2 :(得分:0)

我做了类似的事情来处理在tableview中加载更多数据(即 dataTable ):

1)在tableview的底部添加一个活动指示器(即微调器)。

2)这样做:

-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{

    if(self.dataTable.contentOffset.y<0){
        //it means table view is pulled down like refresh
        return;
    }
    else if(self.dataTable.contentOffset.y >= (self.dataTable.contentSize.height - self.dataTable.bounds.size.height)) {
        NSLog(@"bottom!");
        self.spinner.hidden = false;
        [self.spinner startAnimating];
        [self refreshPulled];
    }

}

-(void)refreshPulled
{
    //get more data and reload table here and hide spinner when all is done

}

希望这会对你有所帮助。