NSInteger _currentPageNo;
UIRefreshControl *_refreshControl;
BOOL _isPullRefresh;///判断是否是下拉
BOOL scrolling;///是否正在上拉刷新
_refreshControl = [[UIRefreshControlalloc] initWithFrame:CGRectMake(0.0f, 0.0f, SCREENBOUND.size.width, 50.0f)];
_refreshControl.tintColor = [UIColorcolorWithHexString:@"#AAAAAA"alpha:1.0f];
[_refreshControladdTarget:selfaction:@selector(requestNewData) forControlEvents:UIControlEventValueChanged];
self.refreshControl = _refreshControl;
///添加表格底部的Actitivy;
self.activity= [[UIActivityIndicatorViewalloc]
initWithFrame : CGRectMake(0, 0, 32.0f, 32.0f)] ;
[_activitysetActivityIndicatorViewStyle: UIActivityIndicatorViewStyleGray];
_activity.color=[UIColorblackColor];
[self.tableViewaddSubview:_activity];
viewDidLoad 里面:
///下拉方法。
_currentPageNo = 1;
_isPullRefresh = YES;
[selfrequestData];
#pragma mark ==========下面四个方法是下拉刷新上拉刷新用的==============
- (void)requestData
{
NetworkSuccessBlock successBlock = ^(id data) {
[_activitystopAnimating];
if (_isPullRefresh) {///如果是下拉。
[_questionData removeAllObjects];
}
[_questionData addObjectsFromArray:data[@"questions"]];
[self.tableView reloadData];
scrolling = YES;
[_refreshControlendRefreshing];
};
NetworkFailureBlock failureBlock = ^(NSError *error) {
scrolling = YES;
[_refreshControlendRefreshing];
};
[SJBQuestionModelrequestQuestionList:_questionTypepageNo:[NSStringstringWithFormat:@"%ld", (long)_currentPageNo] pageSize:@"5"isSolved:_isSolvedonSuccess:successBlock onFailure:failureBlock];
}
- (void)requestNewData
{
if (_refreshControl.refreshing) {
scrolling=NO;
_currentPageNo = 1;
_isPullRefresh = YES;
[selfrequestData];
}
}
- (void)requestMoreData
{
_currentPageNo++;
_isPullRefresh = NO;
[selfrequestData];
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffset.y + scrollView.frame.size.height > scrollView.contentSize.height && scrolling && scrollView.contentOffset.y > 0.0f) {
_activity.center =CGPointMake(self.tableView.center.x, self.tableView.contentSize.height+kPROffsetY);
CGSize Size =self.tableView.contentSize;
Size.height+=kTableViewPullMoreDataThreadholdHeight;
self.tableView.contentSize=Size;
[_activitystartAnimating];
[selfperformSelector:@selector(requestMoreData) withObject:nilafterDelay:0.0f];
scrolling=NO;
}
}
相关推荐
使用EGOTableViewPullRefresh开源项目在IOS中实现UITableView的下拉刷新功能,对源码进行了一些改动,支持中英文显示,刷新时间格式也做了修改
iOS自定义下拉刷新控件
iOS-自定义下拉刷新上拉加载(可根据自己的需求改) 欢迎关注 http://blog.csdn.net/u014220518/article/details/54407135
ios快速集成下拉刷新,上拉刷新
iOS 下拉刷新WebView
ios下拉刷新功能实现
仿IOS效果的下拉刷新上拉加载有博客讲解,可参考本人博客有详细讲解
实现基本UITableView的下拉刷新和上拉加载更多的功能
IOS风格的下拉刷新与加载更多列表组件根据系统自带ListView源码改造而来: 增加下拉刷新及滚动到底部自动加载的功能; 增加越界回弹效果; 增加自定义列表项动画的功能; 与其他下拉刷新列表组件的不同: 其他...
非常好用的上拉加载和下拉刷新类库;很容易嵌入。
简单的底部下拉刷新 数据是死的 方便添加任意控件在tableview的底部 仅供参考
这个是个下拉刷新 仿iOS的 效果非常好
scroll上拉下拉刷新(iOS)
Android实战——仿京东下拉刷新上拉加载
ios 上拉加载下拉刷新
IOS下拉刷新的DEMO 大家来看一眼...
iOS下拉刷新上拉加载更多-支持自定义加载head和foot
ios列表下拉刷新
Xamarin.IOS tableview下拉刷新
下拉刷新上拉加载的TableView封装