澎湃iPad上线版本

collectTableController.m 12KB

    // // collectTableController.m // ThePaperHD // // Created by scar1900 on 15/4/10. // Copyright (c) 2015年 scar1900. All rights reserved. // #import "collectTableController.h" #import "collectContentCell.h" @interface collectTableController () @property(nonatomic, strong)UIButton *closeBtn; @property(nonatomic, strong)UIButton *editBtn; @property(nonatomic, strong)UIButton *deleteAllBtn; @property(nonatomic, strong)UILabel *titleLabel; @property(nonatomic, strong)NSMutableArray *dataList; @property(nonatomic, strong)UIView *backView; @property(nonatomic, strong)UIView *noDataBack; //@property(nonatomic, strong)UITableView *tableView; @end @implementation collectTableController @synthesize isNeedHold; @synthesize dataList = _dataList; @synthesize collectDelegate; - (void)viewDidLoad { [super viewDidLoad]; [MobClick event:@"15"]; self.view.backgroundColor = [UIColor clearColor]; self.view.frame = CGRectMake(0, 0, collectPopSize.width, collectPopSize.height); [self.view addSubview:self.closeBtn]; [self.view addSubview:self.titleLabel]; [self.view addSubview:self.deleteAllBtn]; [self.view addSubview:self.editBtn]; self.closeBtn.frame = CGRectMake(0, 0, 50, 80); [self.closeBtn setImageEdgeInsets:UIEdgeInsetsMake(15, 0, 15, 0)]; self.titleLabel.frame = CGRectMake(0, 0, CGRectGetWidth(self.view.bounds), 80); self.editBtn.frame = CGRectMake(trackPopSize.width-50, 0, 50, 80); [self.editBtn setImageEdgeInsets:UIEdgeInsetsMake(15, 0, 15, 0)]; self.deleteAllBtn.frame = CGRectMake(trackPopSize.width-50-100-5, 0, 100, 80); [self.view addSubview:self.backView]; self.tableView.frame = CGRectMake(0, 0, collectPopSize.width, collectPopSize.height-80); self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; self.tableView.clipsToBounds = YES; [self.backView addSubview:self.noDataBack]; [self.backView addSubview:self.tableView]; [self configCanRefresh:NO canLoad:YES]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self enablePopBackTap]; self.isNeedHold = NO; } -(void)viewDidAppear:(BOOL)animated{ [super viewWillAppear:animated]; if (!self.dataList || self.dataList.count == 0) { [self remoteMethod]; } NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:[TPUserDefault instance].msgMark]; [dic setValue:@(0) forKey:@"collectMark"]; [TPUserDefault instance].msgMark = dic; if ([self.collectDelegate respondsToSelector:@selector(hasAppearCollectCenter)]) { [self.collectDelegate hasAppearCollectCenter]; } } - (void)pullLoadMoreHander { if (!self.nextUrl) { TPLOG(@"数据有问题,无法获取新数据"); [self loadSuccess]; return; } [Remote doJsonAction:2 requestUrl:self.nextUrl parameter:nil delegate:self]; } - (void)setDataList:(NSMutableArray *)list { _dataList = list; if ([self checkIfNoData:list]) { return; } [self.tableView reloadData]; } - (BOOL)checkIfNoData:(NSArray*)list { if (list.count > 0) { self.tableView.hidden =NO; self.noDataBack.hidden = YES; self.editBtn.hidden = NO; return NO; }else { self.tableView.hidden =YES; self.noDataBack.hidden =NO; self.editBtn.hidden = YES; self.deleteAllBtn.hidden = YES; return YES; } } #pragma mark - add Widget - (UIButton*)closeBtn { if (!_closeBtn) { _closeBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_closeBtn setImage:Image(@"login/popUpCloseBtn.png") forState:UIControlStateNormal]; [_closeBtn setImage:Image(@"login/popUpCloseBtn_s.png") forState:UIControlStateHighlighted]; [_closeBtn addTarget:self action:@selector(closeEvent:) forControlEvents:UIControlEventTouchUpInside]; } return _closeBtn; } - (UILabel*)titleLabel { if (!_titleLabel) { _titleLabel = [[UILabel alloc]initWithFrame:CGRectZero]; _titleLabel.backgroundColor = [UIColor clearColor]; _titleLabel.textAlignment = NSTextAlignmentCenter; _titleLabel.text = @"收藏"; _titleLabel.textColor = [UIColor whiteColor]; _titleLabel.font = appFont(30, NO); } return _titleLabel; } - (UIView*)backView { if (!_backView) { _backView = [[UIView alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(self.titleLabel.frame), collectPopSize.width, collectPopSize.height-80)]; _backView.backgroundColor = [UIColor colorWithHexString:BackGroundColor]; } return _backView; } - (UIButton*)editBtn { if (!_editBtn) { _editBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_editBtn setImage:Image(@"Button/editPop.png") forState:UIControlStateNormal]; [_editBtn setImage:Image(@"Button/popConfirmBtn.png") forState:UIControlStateSelected]; [_editBtn addTarget:self action:@selector(editSelector:) forControlEvents:UIControlEventTouchUpInside]; } return _editBtn; } - (UIButton*)deleteAllBtn { if (!_deleteAllBtn) { _deleteAllBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_deleteAllBtn setTitle:@"全部删除" forState:UIControlStateNormal]; [_deleteAllBtn addTarget:self action:@selector(deleteAllCollect:) forControlEvents:UIControlEventTouchUpInside]; _deleteAllBtn.hidden = YES; } return _deleteAllBtn; } - (UIView*)noDataBack { if (!_noDataBack) { _noDataBack = [[UIView alloc]initWithFrame:CGRectMake(0, 0, collectPopSize.width, CGRectGetHeight(self.backView.bounds))]; _noDataBack.backgroundColor = [UIColor colorWithHexString:BackGroundColor]; _noDataBack.hidden = YES; UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, collectPopSize.width, CGRectGetHeight(self.backView.bounds))]; label.textColor = [UIColor colorWithHexString:TextBlack]; label.font = appFont(20, NO); label.textAlignment = NSTextAlignmentCenter; label.lineBreakMode = NSLineBreakByWordWrapping; label.numberOfLines = 0; label.backgroundColor = [UIColor clearColor]; label.text = @"读文章时,点击收藏按钮,可以\n把你喜欢的内容收藏到个人中心"; [_noDataBack addSubview:label]; } return _noDataBack; } #pragma mark - remote method - (void) remoteMethod{ __weak typeof(self) Self = self; [Remote doJsonActionWithBlock:1 requestUrl:myFavouriteURL parameter:nil withWaitCursor:YES completion:^(BOOL success, NSString *message, id responseData) { if (success) { NSMutableArray *trackList = responseData[@"dataList"]; NSMutableArray *collextList = [NSMutableArray array]; [trackList enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { listContObjectVO *listBo = setJsonDicToDataModel(obj, [listContObjectVO class]); [collextList addObject:listBo]; }]; Self.dataList = collextList; NSString *url = responseData[@"nextUrl"]; Self.nextUrl = url; }else { ShowTextMessage(message); } }]; } -(void)remoteResponsSuccess:(int)actionTag withResponsData:(id)responsData{ if (2 == actionTag) { NSMutableArray *oldCollectList= [NSMutableArray arrayWithArray:self.dataList]; NSMutableArray *newCollectList = [NSMutableArray array]; NSArray *list = responsData[@"dataList"]; [list enumerateObjectsUsingBlock:^(NSDictionary* obj, NSUInteger idx, BOOL *stop) { listContObjectVO *listBo = setJsonDicToDataModel(obj, [listContObjectVO class]); [newCollectList addObject:listBo]; }]; [oldCollectList addObjectsFromArray:newCollectList]; self.dataList = oldCollectList; [self loadSuccess]; NSString *url = responsData[@"nextUrl"]; self.nextUrl = url; } } - (void)remoteResponsFailed:(int)actionTag withMessage:(NSString *)message resultCode:(NSString *)code { ShowTextMessage(message); } #pragma mark - button Event - (void)closeEvent:(UIButton*)btn { [self dismissControllerAnimated:YES completion:nil]; } - (void)editSelector:(UIButton*)btn { btn.selected = !btn.selected; if (btn.selected) { [self.tableView setEditing:YES animated:YES]; self.deleteAllBtn.hidden = NO; }else { [self.tableView setEditing:NO animated:YES]; self.deleteAllBtn.hidden = YES; } } - (void)deleteAllCollect:(UIButton*)btn { UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"是否删除全部收藏?" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定",nil]; [alert show]; } - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex != 0) { __weak typeof(self) Self = self; [Remote doJsonActionWithBlock:0 requestUrl:deleteFavoriteURL parameter:nil withWaitCursor:YES completion:^(BOOL success, NSString *message, id responseData) { if (success) { Self.dataList = [NSMutableArray array]; // Delete the row from the data source. [Self.tableView reloadData]; [self checkIfNoData:self.dataList]; }else { ShowMessage(message, NO); } }]; } } #pragma mark - uitableView - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return self.dataList.count; } - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if (!self.dataList || self.dataList.count == 0) { return 0; }else { return 85; } } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *collectCell = @"collectCell"; collectContentCell *cell = [tableView dequeueReusableCellWithIdentifier:collectCell]; if (nil == cell) { cell = [[collectContentCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:collectCell]; } listContObjectVO* listBO = self.dataList[indexPath.row]; [cell setListBO:listBO]; return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; id data = self.dataList[indexPath.row]; self.isNeedHold = YES; if ([self.collectDelegate respondsToSelector:@selector(collectGoToContent:)]) { [self.collectDelegate collectGoToContent:data]; } } - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { id data = self.dataList[indexPath.row]; if ([data isKindOfClass:[listContObjectVO class]]) { return YES; }else { return NO; } } - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleDelete; } - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { listContObjectVO *list = self.dataList[indexPath.row]; NSDictionary *dic = @{@"cids":list.contId}; __weak typeof(self) Self = self; [Remote doJsonActionWithBlock:0 requestUrl:deleteFavoriteURL parameter:dic withWaitCursor:YES completion:^(BOOL success, NSString *message, id responseData) { if (success) { [Self.dataList removeObjectAtIndex:indexPath.row]; [Self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; [self checkIfNoData:self.dataList]; }else { ShowMessage(message, NO); } }]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end