// // FileStatusView.m // GoldRich // // Created by WindShan on 2017/2/13. // Copyright © 2017年 WindShan. All rights reserved. // #import "FileStatusView.h" #import "GloriaLabel.h" #import "UIImageView+WebCache.h" #import "FileStatusCell.h" #import "MBProgressHUD+Add.h" #import "NetworkSingleton.h" #import "MCWiFiManager.h" @interface FileStatusView() /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */ { UIButton* deviceOpenBtn; NSInteger pageIndex; NSInteger pageSize; } @end @implementation FileStatusView - (UITableView *)tableView { if (!_tableView) { _tableView = [[UITableView alloc] init]; _tableView.delegate = self; _tableView.dataSource = self; _tableView.separatorColor = [UIColor clearColor]; [self addSubview:_tableView]; [_tableView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.mas_equalTo(UIEdgeInsetsMake(0 , 0, 0, 0)); }]; _tableView.tableFooterView = [UIView new]; } return _tableView; } - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { self.tableView.frame = frame; self.tableView.hidden = NO; self.modelArray = [[NSMutableArray alloc] init]; pageIndex = 1; pageSize = 20; // test //for (int i = 0; i < 10; i++) { // FileStatus * status = [[FileStatus alloc] init]; // [self.modelArray addObject:status]; //} [self setUpTableView]; } return self; } -(void)getFirstPageData { pageIndex=1; [self getFileList:NO pageIndex:[NSString stringWithFormat:@"%ld",pageIndex] pageSize:[NSString stringWithFormat:@"%ld",pageSize]]; } -(void) reloadData { pageIndex++; [self getFileList:NO pageIndex:[NSString stringWithFormat:@"%ld",pageIndex] pageSize:[NSString stringWithFormat:@"%ld",pageSize]]; } -(void)setUpTableView { //添加下拉的动画图片 // 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadNewData方法) self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(getFirstPageData)]; // 马上进入刷新状态 // [_tableView.mj_header beginRefreshing]; // 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadMoreData方法) //_tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(reloadData)]; } -(void) getFileList:(BOOL) isShow pageIndex:(NSString *)page pageSize:(NSString *)size { // 执行登录操作 MBProgressHUD *HUD = nil; if( isShow == YES) { HUD = [MBProgressHUD showHUDAddedTo:self animated:YES]; HUD.labelText = @"数据加载中..."; // 隐藏时候从父控件中移除 HUD.removeFromSuperViewOnHide = YES; // YES代表需要蒙版效果 HUD.dimBackground = YES; } NSString *path = [[NSString alloc] initWithFormat:GET_FILE_LIST]; NSMutableDictionary *param = [[NSMutableDictionary alloc] init]; // tempdebug //[param setObject:page forKey:@"pageIndex"]; //[param setObject:size forKey:@"pageSize"]; MPWeakSelf(self); [NetworkSingleton networkingGetMethod:param urlName:path success:^(id responseBody) { if( isShow == YES) HUD.hidden = YES; [_tableView.mj_header endRefreshing]; //[_tableView.mj_footer endRefreshing]; MPStrongSelf(self); BaseResModel * resModel = [Global toBaseModel:responseBody]; //if(pageIndex == 1) { [_modelArray removeAllObjects]; } if(resModel.code == 0) { if(![Global isEmptyObject:resModel.content]) { NSMutableArray *modelTempArray = [FileStatus mj_objectArrayWithKeyValuesArray:resModel.content]; BASE_INFO_FUN(resModel.content); [_modelArray addObjectsFromArray:modelTempArray]; _tableView.hidden = NO; [_tableView reloadData]; } else { // 出错处理 if(self.modelArray.count > 0) { [self.modelArray removeAllObjects]; [_tableView reloadData]; } _tableView.hidden = YES; [UserDefault setObject:@"0" forKey:@"isLogin"]; [Global alertMessageEx:resModel.desc title:@"提示信息" okTtitle:nil cancelTitle:@"确定" delegate:self]; } } else { if(self.modelArray.count > 0) { [self.modelArray removeAllObjects]; [_tableView reloadData]; } _tableView.hidden = YES; } } failure:^(NSString *error) { [_tableView.mj_header endRefreshing]; //[_tableView.mj_footer endRefreshing]; if( isShow == YES) HUD.hidden = YES; _tableView.hidden = YES; [Global alertMessageEx:error title:@"提示信息" okTtitle:nil cancelTitle:@"OK" delegate:self]; }]; } - (void) reSetView { pageIndex = 1; [self getFileList:NO pageIndex:[NSString stringWithFormat:@"%ld",pageIndex] pageSize:[NSString stringWithFormat:@"%ld",pageSize]]; } #pragma mark - UITableViewDelegate&UITableViewDataSource -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } //-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section //{ // return 0; //} // -(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { return 0; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.modelArray.count; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 106; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSString * identifier = @"StatusCell"; FileStatusCell * statusCell = [tableView dequeueReusableCellWithIdentifier:identifier]; if (nil == statusCell) { statusCell = [[FileStatusCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; } statusCell.delegate = self; statusCell.selectionStyle = UITableViewCellSelectionStyleNone; statusCell.userInteractionEnabled = YES; FileStatus * model = [self.modelArray objectAtIndex:indexPath.row]; model.row = indexPath.row; model.section = indexPath.section; [statusCell setItemView:model]; return statusCell; } -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; if ( _delegate && [_delegate respondsToSelector:@selector(didSelectedSection:)]) { FileStatus * model = [self.modelArray objectAtIndex:indexPath.row]; [_delegate didSelectedSection:model]; } } // 下载完成处理 - (void)didCellDetailSection:(FileStatus*)model { if ( _detailDelegate && [_detailDelegate respondsToSelector:@selector(didDetailSection:)]) { [_detailDelegate didDetailSection:model]; } } @end