解析
#import "ViewController.h"
#import "AFNetworking.h"
#import "Model.h"
#import "TableViewCell.h"
#import "SVProgressHUD.h"
#import "MJRefresh.h"
@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>{
NSDictionary *dict;
}
@property(nonatomic , strong)UITableView *ojtable;
@property(nonatomic , strong)NSMutableArray *array;
@end
@implementation ViewController
//1. 创建工程,工程名设置为GoldToday,应用名设置为“今日黄金”,最低适用的iOS
//系统版本为10.0(10分)
-(UITableView *)ojtable{
if (!_ojtable) {
_ojtable = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];
_ojtable.delegate = self;
_ojtable.dataSource = self;
}
// 注册
[_ojtable registerNib:[UINib nibWithNibName:@"TableViewCell" bundle:nil] forCellReuseIdentifier:@"cell"];
return _ojtable;
}
- (void)viewDidLoad {
[super viewDidLoad];
self.array = [NSMutableArray array];
[self addheaderrefresh];
// [self addfootrefresh];
[self.view addSubview:self.ojtable];
// af请求
[self loadNewData];
}
- (void)loadNewData{
//显示加载栏
[SVProgressHUD showWithStatus:@"加载中..."];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
[manager GET:@"http://web.juhe.cn:8080/finance/gold/shgold?key=1b9f570e367ce24e51135d69eac7d04e" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"%@",responseObject);
NSArray *arr = responseObject[@"result"];
NSDictionary *dict = [arr objectAtIndex:0];
// 添加数据
for (NSDictionary *dic in dict.allValues) {
Model *model = [Model new];
[model setValuesForKeysWithDictionary:dic];
[self.array addObject:model];
}
[self.ojtable reloadData];
//取消刷新控件
[self.ojtable.mj_header endRefreshing];
[self.ojtable.mj_footer endRefreshing];
//去掉加载栏
[SVProgressHUD dismiss];
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error);
//提示用户
//取消刷新控件
[self.ojtable.mj_header endRefreshing];
[self.ojtable.mj_footer endRefreshing];
//去掉加载栏
[SVProgressHUD dismiss];
}];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.array.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
Model *model =self.array[indexPath.row];
cell.time.text = model.time;
//显示内容
cell.totalvol.text = model.totalvol;
cell.variety.text = model.variety;
cell.yespri.text = model.yespri;
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 100;
}
// 添加头部刷新
-(void)addheaderrefresh{
MJRefreshGifHeader *header=[MJRefreshGifHeader headerWithRefreshingBlock:^{
//初始化页数
//清空数据源
[self.array removeAllObjects];
//重新发送网络请求
[self loadNewData];
}];
NSArray * imageArr = @[[UIImage imageNamed:@"common_loading_anne_0"],[UIImage imageNamed:@"common_loading_anne_1"]];
//添加正在刷新中的状态
[header setImages:imageArr forState:MJRefreshStateRefreshing];
//闲置状态
[header setImages:@[[UIImage imageNamed:@"common_loading_anne_0"]] forState:MJRefreshStateIdle];
//文字
[header setTitle:@"马上完成....." forState:MJRefreshStateRefreshing];
self.ojtable.mj_header=header;
}
//上拉加载
-(void)addfootrefresh{
MJRefreshAutoGifFooter *footer=[MJRefreshAutoGifFooter footerWithRefreshingBlock:^{
//重新请求数据
[self loadNewData];
}];
NSArray * imageArr = @[[UIImage imageNamed:@"loading_teemo_1"],[UIImage imageNamed:@"loading_teemo_2"]];
[footer setImages:imageArr forState:MJRefreshStateRefreshing];
self.ojtable.mj_footer=footer;
}