//CollectionController // // MineCollectController.m // PapayaPlayerDaqo // // Created by 味口 on 16/8/15. // Copyright (c) 2016年 wgj. All rights reserved. // #import "CollectionController.h" #import "NoteCell.h" #import "UIImageView+YTH.h" #import "YTHsharedManger.h" #import "XYRDetailViewController.h" #import "discoverGoodsDetailViewController.h" @interface CollectionController (){ // HMSegmentedControl *segmentedControl; UITableView * mytableview; UIView *prompt; //没有数据时,提示视图 UIView *allSelAndDelView; //删除视图 UIButton *deleBtn; //导航栏删除按钮 UIButton *deleteBut; //删除按钮 UIButton *allSelectBut; //全选 NSInteger videoPage; //请求第几页视频收藏数据 NSInteger goodsPage; //请求第几页商品收藏数据 NSMutableArray *_videoData; //视频收藏数据 NSMutableArray *_goodsData; //商品收藏数据 NSMutableArray *_editDataAry; //需要删除的数据 BOOL WhetherChooseGoodsCollection; // NO 左(视频收藏) YES 右(商品收藏) } @end @implementation CollectionController - (void)viewDidLoad { [super viewDidLoad]; videoPage = 1; goodsPage = 1; [self initScene]; } - (void)viewWillAppear:(BOOL)animated{ // if (_videoData.count == 0) { // videoPage = 1; // } [self getVideoDataResuse:1]; } -(void)initScene{ //设置背景色 self.view.backgroundColor = kGlobalBackgroundColor; //设置导航栏 [self createNavgationBar]; //创建选项 // [self createSegmentedControl]; //创建列表 [self createTableView]; //创建删除操作视图 [self CreateOperatingView]; //没有数据时的提示视图 [self promptView]; //加载视频收藏第一页的数据 [self getVideoDataResuse:1]; } /** 设置导航栏 */ -(void)createNavgationBar{ self.navigationItem.title = @"我的收藏"; self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor],NSFontAttributeName:[UIFont systemFontOfSize:18]}; //返回按钮 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; [button setImage:[[UIImage imageNamed:@"详情页面返回"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal]; [button addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside]; button.frame = CGRectMake(0, 0, 32, 32); UIBarButtonItem *iconBarItem=[[UIBarButtonItem alloc] initWithCustomView:button]; //删除按钮 deleBtn = [UIButton buttonWithType:UIButtonTypeCustom]; deleBtn.frame = CGRectMake(0, 0, 40, 44); //未选中状态 [deleBtn setTitle:@"" forState:UIControlStateNormal]; [deleBtn setImage:[[UIImage imageNamed:@"删除"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal]; //选中状态 [deleBtn setTitle:@"取消" forState:UIControlStateSelected]; deleBtn.titleLabel.font = [UIFont systemFontOfSize:15]; deleBtn.titleLabel.textAlignment = NSTextAlignmentCenter; [deleBtn addTarget:self action:@selector(deletebutton:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *deleteBarItem=[[UIBarButtonItem alloc] initWithCustomView:deleBtn]; //添加按钮到导航栏 self.navigationItem.leftBarButtonItem = iconBarItem; self.navigationItem.rightBarButtonItem = deleteBarItem; } ///** // 创建选项栏 // */ //-(void)createSegmentedControl{ // segmentedControl = [[HMSegmentedControl alloc] initWithSectionTitles:@[@"影视收藏", @"商品收藏"]]; // NSInteger height = 64; // if (KIsiPhoneX) { // height = 84; // } // [segmentedControl setFrame:CGRectMake(0, height, KScreenW, 48)]; // segmentedControl.selectionIndicatorHeight = 4.0f; // segmentedControl.backgroundColor = KGlobalLightGreyColor_255; // segmentedControl.titleTextAttributes = @{NSForegroundColorAttributeName : kGlobalDeepGreyColor}; // segmentedControl.selectionIndicatorColor = kGlobalYellowColor; // segmentedControl.selectionStyle = HMSegmentedControlSelectionStyleTextWidthStripe; // segmentedControl.selectedSegmentIndex = 0; // segmentedControl.selectionIndicatorLocation = HMSegmentedControlSelectionIndicatorLocationDown; // segmentedControl.shouldAnimateUserSelection = YES; // segmentedControl.titleTextAttributes = @{NSFontAttributeName:[UIFont systemFontOfSize:15]}; // [segmentedControl addTarget:self action:@selector(segmentedControlChangedValue:) forControlEvents:UIControlEventValueChanged]; // // //选项下面的横线 // UILabel *Line = [[UILabel alloc]initWithFrame:CGRectMake(0, 48, KScreenW, 1)]; // Line.backgroundColor = kGlobaLineColor; // [segmentedControl addSubview:Line]; // // //选项中间的分割线 // UILabel *Line1 = [[UILabel alloc]initWithFrame:CGRectMake(KScreenW / 2 - 0.5 , 10 ,1, 28)]; // Line1.backgroundColor = kGlobaLineColor; // [segmentedControl addSubview:Line1]; // //// [self.view addSubview:segmentedControl]; //} /** 创建列表 */ -(void)createTableView{ NSInteger height = 117 - 48; if (KIsiPhoneX) { height = 137 - 48 ; } mytableview = [[UITableView alloc]initWithFrame:CGRectMake(0,0 , KScreenW, KScreenH ) style:UITableViewStylePlain]; mytableview.delegate = self; mytableview.dataSource = self; mytableview.backgroundColor = kGlobalBackgroundColor; mytableview.showsVerticalScrollIndicator = NO; mytableview.separatorStyle = UITableViewCellSeparatorStyleNone; //注册收藏视频的cell [mytableview registerNib:[UINib nibWithNibName:@"NoteCell" bundle:nil] forCellReuseIdentifier:@"NoteCell"]; //下拉刷新方法 mytableview.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)]; //上拉加载更多 mytableview.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)]; [self.view addSubview:mytableview]; } /** 创建操作视图(全选,删除) */ -(void)CreateOperatingView{ //盛放全选按钮和删除按钮的视图 CGFloat height = 40; if (KIsiPhoneX) { height = 60; } allSelAndDelView = [[UIView alloc] initWithFrame:CGRectMake(0, KScreenH-height, KScreenW, 40)]; allSelAndDelView.backgroundColor = [UIColor whiteColor]; //默认隐藏,只有用户点击编辑按钮时,才会出现 allSelAndDelView.hidden = YES; //全选按钮和删除按钮的分割线 UIView *link = [[UIView alloc] initWithFrame:CGRectMake(KScreenW/2, 5, 1, 30)]; link.backgroundColor = kGlobalLightGreyColor_210; [allSelAndDelView addSubview:link]; //分割线 UIView *link1 = [[UIView alloc] initWithFrame:CGRectMake(KScreenW-40, 5, KScreenH, 1)]; link.backgroundColor = kGlobalLightGreyColor_210; [allSelAndDelView addSubview:link1]; //删除按钮 deleteBut = [UIButton buttonWithType:UIButtonTypeSystem]; deleteBut.frame = CGRectMake(KScreenW*0.525, 0, KScreenW*0.45, 38); [deleteBut setBackgroundColor:[UIColor lightTextColor]]; [deleteBut setTitle:@"删除" forState:UIControlStateNormal]; [deleteBut setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [deleteBut addTarget:self action:@selector(deleteSelectDataClick) forControlEvents:UIControlEventTouchUpInside]; [allSelAndDelView addSubview:deleteBut]; //全选按钮 allSelectBut = [UIButton buttonWithType:UIButtonTypeSystem]; allSelectBut.frame = CGRectMake(KScreenW*0.025, 0, KScreenW*0.45, 38); [allSelectBut setBackgroundColor:[UIColor lightTextColor]]; [allSelectBut setTitle:@"全选" forState:UIControlStateNormal]; [allSelectBut setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [allSelectBut addTarget:self action:@selector(allSelectOrCancelClick) forControlEvents:UIControlEventTouchUpInside]; [allSelAndDelView addSubview:allSelectBut]; [self.view addSubview:allSelAndDelView]; } /** 没有数据时的提示视图 */ -(void)promptView{ prompt = [[UIView alloc]initWithFrame:CGRectMake((self.view.frame.size.width - 155) /2, (self.view.frame.size.height - 190) /2, 155, 190)]; [prompt setHidden:YES]; UIImageView *buwanImag= [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"登录娃娃"]]; buwanImag.frame = CGRectMake((prompt.frame.size.width - 102) / 2, 0, 102, 130); [prompt addSubview:buwanImag]; UIImageView *tipMessage= [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"收藏记录提示"]]; tipMessage.frame = CGRectMake(0, buwanImag.frame.size.height + buwanImag.frame.origin.y + 18, 155, 42); [prompt addSubview:tipMessage]; [self.view addSubview:prompt]; } /** 下拉刷新方法 */ - (void)loadNewData{ videoPage = 1; [self getVideoDataResuse:videoPage]; } /** 上拉加载更多视图 */ - (void)loadMoreData{ //收藏的视频 [self getVideoDataResuse:videoPage]; } /** 选择器切换时触发的函数 */ - (void)segmentedControlChangedValue:(HMSegmentedControl *)segmentedControls { [prompt setHidden:YES]; if(segmentedControls.selectedSegmentIndex==0){ WhetherChooseGoodsCollection=NO; }else{ WhetherChooseGoodsCollection=YES; } mytableview.editing = NO; [self editNO]; //重新获取数据源 [mytableview.mj_header beginRefreshing]; //重新加载数据 [mytableview reloadData]; } /** 请求数据方法 @param pageNumber 页数 */ - (void)getVideoDataResuse:(NSInteger)pageNumber{ [SVProgressHUD showWithStatus:@"加载中"]; [[YTHNetInterface startInterface] getCollectedVideoWithUid:[YTHsharedManger startManger].Uid withSystem:@"1" withPage:[NSString stringWithFormat:@"%ld",(long)pageNumber] withBlock:^(BOOL isSuccessful, id result, NSString *error) { if (isSuccessful) { NSDictionary *dic =(NSDictionary *)result; if (!_videoData) { _videoData = [[NSMutableArray alloc] initWithCapacity:0]; } if (pageNumber == 1) { [_videoData removeAllObjects]; } NSArray *arr = [[dic objectForKey:@"Data"] objectForKey:@"data"]; for (int i =0; i0){ ++videoPage; } //取消编辑状态 mytableview.editing = NO; [self editNO]; [mytableview reloadData]; if(_videoData.count>0){ [prompt setHidden:YES]; }else{ [prompt setHidden:NO]; } [mytableview.mj_footer endRefreshing]; if (_videoData.count < 20) { [mytableview.mj_footer endRefreshingWithNoMoreData]; } if (_videoData.count < 3) { mytableview.mj_footer.hidden = YES; } }else{ [mytableview.mj_footer endRefreshing]; NSLog(@"%@",error); if ([error compare:@"似乎已断开与互联网的连接。"] == 0) { [self autoDisappearAlertTime:1 msg:@"网络不可用,请检查网络"]; } } [SVProgressHUD dismiss]; }]; [mytableview.mj_header endRefreshing]; } /** 取消编辑状态 */ - (void)editNO{ //改变导航栏删除按钮的样式 [deleBtn setSelected:NO]; [deleBtn setImage:[[UIImage imageNamed:@"删除"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal]; //添加上拉刷新和下拉加载更多 //下拉刷新方法 mytableview.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)]; //上拉加载更多 mytableview.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)]; [allSelAndDelView setHidden:YES]; } /** * 全选 */ -(void)allSelectOrCancelClick{ long num;//当前显示的收藏数量,仅限从服务器已近获取的 NSArray *nowData; if (WhetherChooseGoodsCollection) { //收藏的商品 num=(long)[_goodsData count]; nowData=_goodsData; }else{ //收藏的视频 num=(long)[_videoData count]; nowData=_videoData; } //清理所有添加的 [_editDataAry removeAllObjects]; if ([allSelectBut.titleLabel.text isEqualToString:@"全选"]){ //全选状态 [allSelectBut setTitle:@"取消全选" forState:UIControlStateNormal]; [deleteBut setTitle:[NSString stringWithFormat:@"删除(%ld)",num] forState:UIControlStateNormal]; for (int i = 0 ; i < num ; ++i){ NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0]; [mytableview selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; //将全部数据加入 [_editDataAry addObject:[nowData objectAtIndex:i]]; } }else{ //取消全选 [allSelectBut setTitle:@"全选" forState:UIControlStateNormal]; [deleteBut setTitle:[NSString stringWithFormat:@"删除"] forState:UIControlStateNormal]; for (int i = 0 ; i 19){ return NO; }else{ return YES; } } @end