如何在UIScrollView的底部添加UIRefreshController。 我正在UIScrollView中实现load more选项,这样我就可以将更多数据加载到scrollview中。
提前致谢...
答案 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
}
希望这会对你有所帮助。