1.头文件引入
#import "MJRefresh.h"
2.在viewdidload执行方法:
[selfaddHeader];
[selfaddFooter];
3.添加方法
- (void)addFooter
{
__unsafe_unretainedxiaoxi_list *vc =self;
MJRefreshFooterView *footer = [MJRefreshFooterViewfooter];
footer.scrollView =self.mytable;
footer.beginRefreshingBlock = ^(MJRefreshBaseView *refreshView) {
_flagrefresh = YES;
[self getMessage:icount*LIMITlimit:LIMIT];
//重置刷新次数
icount++;
//模拟延迟加载数据,因此2秒后才调用)
// 这里的refreshView其实就是footer
[vc performSelector:@selector(doneWithView:)withObject:refreshViewafterDelay:0.0];
};
_footer = footer;
}
- (void)addHeader
{
__unsafe_unretainedxiaoxi_list *vc =self;
MJRefreshHeaderView *header = [MJRefreshHeaderViewheader];
header.scrollView =self.mytable;
header.beginRefreshingBlock = ^(MJRefreshBaseView *refreshView) {
_flagrefresh = NO;
[self getMessage:0limit:LIMIT];
//重置刷新次数
icount = 1;
// 这里的refreshView其实就是header
[vc performSelector:@selector(doneWithView:)withObject:refreshViewafterDelay:2.0];
};
header.endStateChangeBlock = ^(MJRefreshBaseView *refreshView) {
// 刷新完毕就会回调这个Block
};
header.refreshStateChangeBlock = ^(MJRefreshBaseView *refreshView,MJRefreshState state) {
// 控件的刷新状态切换了就会调用这个block
switch (state) {
caseMJRefreshStateNormal:
NSLog(@"%@----切换到:普通状态", refreshView.class);
break;
caseMJRefreshStatePulling:
NSLog(@"%@----切换到:松开即可刷新的状态", refreshView.class);
break;
caseMJRefreshStateRefreshing:
NSLog(@"%@----切换到:正在刷新状态", refreshView.class);
break;
default:
break;
}
};
[header beginRefreshing];
_header = header;
}
- (void)doneWithView:(MJRefreshBaseView *)refreshView
{
if(_total<icount*LIMIT&&_total!=0)
{
[[NSNotificationCenterdefaultCenter]postNotificationName:@"changetext"object:nil];
}
// 刷新表格
[self.mytablereloadData];
// (最好在刷新表格后调用)调用endRefreshing可以结束刷新状态
[refreshView endRefreshing];
}
4.取数据
-(void)getMessage:(int)start limit:(int)limit{
MBProgressHUD *hud= [[MBProgressHUDalloc]initWithView:self.view];
hud.labelText = @"正在努力加载";
[self.viewaddSubview:hud];
[hud show:YES];
NSString *url = [NSStringstringWithFormat:@"%@/adnotification/queryNotificationList?start=%d&limit=%d&corpid=%@",BASEURL,start,limit,CORPID];
AFHTTPRequestOperationManager *managers = [AFHTTPRequestOperationManagermanager];
managers.responseSerializer.acceptableContentTypes = [NSSetsetWithObject:@"text/html"];
[managers GET:url parameters:nil
success:^(AFHTTPRequestOperation *operation,id responseObject)
{
[hud hide:YES];
[hud removeFromSuperview];
dataSource_dic = (NSMutableDictionary *)responseObject;
_total = [[dataSource_dicobjectForKey:@"total"]integerValue];
if([dataSourcecount]*49 >DEVICE_HEIGHT-60){
self.mytable.frame =CGRectMake(0,0,320, DEVICE_HEIGHT-60);
}
else{
self.mytable.frame =CGRectMake(0,0,320, [dataSourcecount]*49);
}
if(!_flagrefresh)
{
[dataSource removeAllObjects];
}
[dataSource addObjectsFromArray:dataSource_dic[@"data"]]; (重点)
[self.mytablereloadData];
}
failure:^(AFHTTPRequestOperation *operation,NSError *error)
{
[hud hide:YES];
[hud removeFromSuperview];
}];
}