|
//
// 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
|