- 获取的初始加载的数据: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];
}];
}
网友评论