美文网首页
下拉刷新1.0-- 控件

下拉刷新1.0-- 控件

作者: 酸po萄 | 来源:发表于2016-08-26 08:25 被阅读15次

    0.0总结:下拉刷新的思路

      1. 获取的初始加载的数据:self.dataSourceArray;
    • 2.加载更新的数据:self.newSourceNarray;
      2.1以微博获取新数据为例:获取数据时传入当前dataSourceArray中的firstObject的id即为最大的sinceId,可以获取现有基础上的更新的dataSource数据;
      2.2 根据获取的最新的dataSource数据获取设置要插入
    >// 将最新的微博数据,添加到总数组的最前面
    //NSRange range = NSMakeRange(0, newStatuses.count);
    //NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:range];
    
    • 3.将self.newSourceNarray添加到self.dataSourceArray的最前端;
      3.1 提前设置插入的范围NSRange:location,length ;
      3.2 NSIndexSet:插入最新数据
    //[self.dataSourceArray insertObjects:newStatuses atIndexes:set];
    
    • 4.[self.tableView reloadData];
    • 5.[sender endRefresh ];
    1.0 系统自带控件UIRefreshControl添加下拉刷新控件
    UIRefreshControl *refresh = [[UIRefreshControl alloc]init];
    [refresh addTarget:self action:@selector(refreshControlBegin:) forControlEvents:UIControlEventValueChanged];
    [self.tableView addSubview:refresh];
    -(void)refreshControlBegin:(UIRefreshControl *)sender{ 
    //    NSLog(@"refreshControlBegin");
    //    进行刷新操作;
    //将最新的数据插入到数组的最前面;
    //    更新数据
    //    [self.tableView reloadData];
    //    //停止刷新;
    //    [sender endRefreshing];
    }
    
    2.0 MJRefresh添加下拉刷新控件、上拉加载

    #######2.1 MJRefresh直接添加

    
    - (void)viewDidLoad { [super viewDidLoad]; 
    //默认【下拉刷新】.
     self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(refresh)]; 
    //默认【上拉加载】 
    self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMore)];
    }
    -(void)refresh{ 
    [self getNetworkData:YES];
    }
    -(void)loadMore{
     [self getNetworkData:NO];
    }
    

    #######2.12MJRefresh的block添加下拉刷新、上拉加载

    - (void)viewDidLoad { [super viewDidLoad]; 
     __weak typeof(self) weakSelf = self; 
    //默认block方法:设置下拉刷新 
    self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ 
    [weakSelf getNetworkData:YES]; }]
    ; //默认block方法:设置上拉加载更多 
    .self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{ 
    //Call this Block When enter the refresh status automatically 
    [weakSelf getNetworkData:NO]; 
    }];
    }
    

    相关文章

      网友评论

          本文标题:下拉刷新1.0-- 控件

          本文链接:https://www.haomeiwen.com/subject/lvpasttx.html