MJRefreshHeaderView刷新集成

来源:互联网 发布:php解压zip到指定目录 编辑:程序博客网 时间:2024/06/05 15:08

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];

         

     }];

}





0 0
原创粉丝点击