- (void)setupTableView {
self.dataSource = [NSMutableArray array];
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, typeScrollHeight, RJScreenW, RJScreenH - typeScrollHeight) style:UITableViewStylePlain];
self.tableView.delegate = self;
[self.view addSubview:self.tableView];
}
- (void)setupRefreshHeaderAndFooter {
self.header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(refresh)];
self.footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMore)];
self.tableView.header = self.header;
self.tableView.footer = self.footer;
self.header.automaticallyChangeAlpha = YES;
}
- (void)loadData {
[RJNewsNewsHelper loadNewsDataWithParam:self.param success:^(NSDictionary *dict) {
[self endLoadData];
id result = [self.jsonToModel objectWithKeyValues:dict];
NSMutableArray *data = [result valueForKeyPath:@"data.list"];
[self isFailure:data];
NSMutableArray *reconfigData = [RJNewsNewsHelper reconfigData:data];
NSArray *newFrames = [self dataFramesWithData:reconfigData];
[self.dataSource addObjectsFromArray:newFrames];
[self endLoadData];
[self.tableView reloadData];
}failure:^(NSError *error) {
[self endLoadData];
[self loadDataFailure];
NSLog(@"%@", error);
}];
}
- (void)isFailure:(NSMutableArray *)data {
if (data == nil || data.count == 0)
[self loadDataFailure];
}
- (void)loadDataFailure {
self.page = self.page > 2 ? self.page-- : self.page;
}
- (void)endLoadData {
if (self.page == 1) {
[self.dataFrames removeAllObjects];
[self.tableView.header endRefreshing];
} else {
[self.tableView.footer endRefreshing];
}
}
- (void)refresh {
self.param = [[RJRequestParam alloc] initWithParamModel:newsNewsRequestModel];
NSString *url = [self.selectBtn.object valueForKey:@"url"];
self.param.urlString = url;
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
self.page = 1;
dict[@"p"] = @(self.page);
self.param.params = dict;
[self loadData];
}
- (void)loadMore {
self.param = [[RJRequestParam alloc] initWithParamModel:newsNewsRequestModel];
NSString *url = [self.selectBtn.object valueForKey:@"url"];
self.param.urlString = url;
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
dict[@"p"] = @(++self.page);
self.param.params = dict;
[self loadData];
}
转载于:https://my.oschina.net/famiove/blog/500924