// // YOUPAIZYSearchVC.m // VQU // // Created by Elaine on 2020/12/16. // Copyright © 2020 leo. All rights reserved. // #import "YOUPAIZYSearchVC.h" #import "YOUPAILCOnlineCell.h" #import "YOUPAILZUserShowVC.h" #import "YOUPAIZYLabelView.h" #import "YOUPAIZYLabelModel.h" #import "YOUPAIHRSearchHeaderView.h" #import "YOUPAIHRSearchModel.h" #import "YOUPAIHRSearchLiveRoomCell.h" #import "YOUPAIHRSearchResultVC.h" #import "YOUPAILZChatRoomPasswordWindow.h" #import "YOUPAILZChatRoomVC.h" #import "UIViewController+TFPresent.h" #import "YOUPAIHRSearchBannerCell.h" typedef enum : NSUInteger { SearchCellType_List,//用户 SearchCellType_talkData,//语聊 SearchCellType_liveData,//直播 SearchCellType_bannerData,//图片 } SearchCellType; @interface HRSearchHomeModel : NSObject // 类型 @property (nonatomic, assign) SearchCellType youpaiptype; @end @implementation HRSearchHomeModel @end @interface YOUPAIZYSearchVC () @property(nonatomic,strong)UISearchBar* searchBar; @property(nonatomic,strong)NSMutableArray* youpaipcontBtnArray; @property(nonatomic,strong)NSMutableArray* youpaipsexBtnArray; @property(nonatomic,strong)NSMutableArray* youpaippersonArray; @property(nonatomic,strong)NSString* currentString; @property(nonatomic,assign)NSInteger currentType; //0全部 1虾约号 2昵称 @property(nonatomic,assign)NSInteger gender; //0全部 1女生 2男生 @property(nonatomic,assign)NSInteger currentPage;//代表当前页码 @property(nonatomic,strong)NSMutableArray* youpaiplabelArray;//标签 @property(nonatomic,assign)CGFloat youpaiplabelViewHeight; @property(nonatomic,assign)NSInteger youpaiptotalPage; @property(nonatomic,strong)NSMutableArray *youpaiphotUserArray;//热搜 @property (nonatomic, strong) NSMutableArray *youpaiphistoryArray;//历史记录 //=====结果// @property(nonatomic,strong)NSMutableArray *youpaipListArray;//用户数组 @property(nonatomic,strong)NSMutableArray *youpaiptalkDataArray;//语聊数组 @property(nonatomic,strong)NSMutableArray *youpaipliveDataArr;//直播数组 @property(nonatomic,strong)NSMutableArray *youpaipbannerArr;//图片数组 @property(nonatomic,strong)YOUPAIHRSearchModel* model; @property(nonatomic,strong)youpaipbannerModel *bannerModel; @end @implementation YOUPAIZYSearchVC - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ [self.view endEditing:YES]; } - (void)youpaifsetupTableView{ self.tableView.frame = CGRectMake(0, NavBarHeight, KScreenWidth, KScreenHeight-NavBarHeight); self.tableView.showsVerticalScrollIndicator = NO; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; self.tableView.backgroundColor = LCWhiteColor; self.tableView.delegate = self; self.tableView.dataSource= self; self.isAllowScroll = NO; [self.view addSubview:self.tableView]; self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(youpaifloadNewData)]; MJRefreshAutoNormalFooter* normalFooter = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(youpaifloadMoreData)]; [normalFooter setTitle:@"正在加载..." forState:(MJRefreshStateRefreshing)]; [normalFooter setTitle:@"" forState:(MJRefreshStateNoMoreData)]; self.tableView.mj_footer = normalFooter; self.tableView.mj_footer.automaticallyHidden = YES; self.tableView.tableHeaderView = [self youpaiftableHeaderView]; } - (void)youpaifloadNewData{ self.tableView.mj_footer.hidden = YES; [self.tableView.mj_footer endRefreshing];//先结束上拉,假如有的话 self.currentPage = 1; if (self.youpaipisSearch) { [self.tableView.mj_header endRefreshing]; return; } [LCHttpHelper requestWithURLString:HomeOnlineActive parameters:@{@"page":@(self.currentPage),@"gender":@(self.gender)} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) { NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code==0) {//成功 [self.youpaiphotUserArray removeAllObjects]; NSArray* array = [[[dict objectForKey:@"data"]objectForKey:@"list"]objectForKey:@"list"]; NSMutableArray* modelArray = [YOUPAILCOnlineModel mj_objectArrayWithKeyValuesArray:array]; NSMutableArray* tempArray = [NSMutableArray arrayWithArray:(NSArray*)modelArray]; [self.youpaiphotUserArray addObjectsFromArray:tempArray]; self.youpaiptotalPage = [[[[dict objectForKey:@"data"]objectForKey:@"list"]objectForKey:@"total_page"]integerValue]; self.currentPage = [[[[dict objectForKey:@"data"]objectForKey:@"list"]objectForKey:@"page"]integerValue]; [self.tableView reloadData]; if (self.currentPage>=self.youpaiptotalPage) { [self.tableView.mj_footer endRefreshingWithNoMoreData]; self.tableView.mj_footer.hidden = YES; } [self.tableView.mj_header endRefreshing]; }else{ [self.tableView.mj_header endRefreshing]; } } failure:^(NSError *error) { [self.tableView.mj_header endRefreshing]; }]; } - (void)youpaifloadMoreData{ [self.tableView.mj_header endRefreshing]; self.tableView.mj_footer.hidden = YES; [self.tableView.mj_footer endRefreshing]; self.currentPage+=1; if (self.youpaipisSearch) {//搜索 [LCHttpHelper requestWithURLString:HomeSearch parameters:@{@"text":self.currentString,@"type":@(self.currentType),@"page":@(self.currentPage+1)} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) { NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code==0) {//成功 if (self.youpaiptalkDataArray.count>0) { [self.youpaiptalkDataArray removeAllObjects]; } if (self.youpaipliveDataArr.count>0) { [self.youpaipliveDataArr removeAllObjects]; } if (self.youpaipListArray.count>0) { [self.youpaipListArray removeAllObjects]; } if (self.youpaipbannerArr.count>0) { [self.youpaipbannerArr removeAllObjects]; } YOUPAIHRSearchModel* model = [YOUPAIHRSearchModel mj_objectWithKeyValues:[dict objectForKey:@"data"]]; youpaipbannerModel *model1 = [youpaipbannerModel mj_objectWithKeyValues:model.youpaipbannerData]; self.model = model; [self.youpaiptalkDataArray addObjectsFromArray:model.youpaiptalkData]; [self.youpaipliveDataArr addObjectsFromArray:model.youpaipliveData]; [self.youpaipListArray addObjectsFromArray:model.youpaiplist]; if (model1.youpaipkey.length>0) { [self.youpaipbannerArr addObject:model1]; } // if (self.youpaiptalkDataArray.count<=0&self.youpaipliveDataArr.count<=0&self.youpaipListArray.count<=0) { // [ZCHUDHelper showTitle:@""]; // }else{ // [self youpaifupdateShowCells]; // } self.currentPage = [[[dict objectForKey:@"data"] objectForKey:@"page"]integerValue]; NSInteger youpaiptotalPage = [[[dict objectForKey:@"data"] objectForKey:@"total_page"]integerValue]; if (self.currentPage>=youpaiptotalPage) { [self.tableView.mj_footer endRefreshingWithNoMoreData]; self.tableView.mj_footer.hidden = YES; } } [self.tableView.mj_footer endRefreshing]; } failure:^(NSError *error) { [self.tableView.mj_footer endRefreshing]; }]; }else{ [LCHttpHelper requestWithURLString:HomeOnlineActive parameters:@{@"page":@(self.currentPage),@"gender":@(self.gender)} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) { NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code==0) {//成功 NSArray* array = [[[dict objectForKey:@"data"]objectForKey:@"list"]objectForKey:@"list"]; NSMutableArray* modelArray = [YOUPAILCOnlineModel mj_objectArrayWithKeyValuesArray:array]; NSMutableArray* tempArray = [NSMutableArray arrayWithArray:(NSArray*)modelArray]; [self.youpaiphotUserArray addObjectsFromArray:tempArray]; self.youpaiptotalPage = [[[[dict objectForKey:@"data"]objectForKey:@"list"]objectForKey:@"total_page"]integerValue]; self.currentPage = [[[[dict objectForKey:@"data"]objectForKey:@"list"]objectForKey:@"page"]integerValue]; [self.tableView reloadData]; if (self.currentPage>=self.youpaiptotalPage) { [self.tableView.mj_footer endRefreshingWithNoMoreData]; self.tableView.mj_footer.hidden = YES; } [self.tableView.mj_header endRefreshing]; }else{ [self.tableView.mj_header endRefreshing]; } } failure:^(NSError *error) { [self.tableView.mj_header endRefreshing]; }]; } } -(UIView *)youpaiftableHeaderView { UIView *tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0,0,KScreenWidth, self.youpaiplabelViewHeight)]; YOUPAIHRSearchHeaderView *labelView = [[YOUPAIHRSearchHeaderView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, self.youpaiplabelViewHeight) youpaiphistoryArray:self.youpaiphistoryArray]; self.youpaiplabelViewHeight = labelView.youpaipcollectionView.collectionViewLayout.collectionViewContentSize.height; tableHeaderView.frame = CGRectMake(0,0,KScreenWidth, self.youpaiplabelViewHeight+44); labelView = [[YOUPAIHRSearchHeaderView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, self.youpaiplabelViewHeight+44) youpaiphistoryArray:self.youpaiphistoryArray]; @weakify(self); [labelView setYoupaiptapAction:^(NSString * _Nonnull str) { @strongify(self); [self youpaifsearchDidclikTag:str]; }]; [tableHeaderView addSubview:labelView]; if (self.youpaiphistoryArray.count<=0) { return [UIView new]; }else{ return tableHeaderView; } } -(void)youpaifsearchDidclikTag:(NSString*)keyword{ self.searchBar.text = keyword; self.currentString = keyword; self.youpaipisSearch = YES; // NSLog(@"%@",@{@"type":@(self.currentType),@"page":@(1),@"label_id":self.youpaiplabel_id}); [LCHttpHelper requestWithURLString:HomeSearch parameters:@{@"type":@(self.currentType),@"page":@(1),@"text":keyword} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) { NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code==0) {//成功 [self.youpaippersonArray removeAllObjects]; if (self.youpaiptalkDataArray.count>0) { [self.youpaiptalkDataArray removeAllObjects]; } if (self.youpaipliveDataArr.count>0) { [self.youpaipliveDataArr removeAllObjects]; } if (self.youpaipListArray.count>0) { [self.youpaipListArray removeAllObjects]; } if (self.youpaipbannerArr.count>0) { [self.youpaipbannerArr removeAllObjects]; } YOUPAIHRSearchModel* model = [YOUPAIHRSearchModel mj_objectWithKeyValues:[dict objectForKey:@"data"]]; youpaipbannerModel *model1 = [youpaipbannerModel mj_objectWithKeyValues:model.youpaipbannerData]; self.model = model; [self.youpaiptalkDataArray addObjectsFromArray:model.youpaiptalkData]; [self.youpaipliveDataArr addObjectsFromArray:model.youpaipliveData]; [self.youpaipListArray addObjectsFromArray:model.youpaiplist]; if (model1.youpaipkey.length>0) { [self.youpaipbannerArr addObject:model1]; } [self youpaifupdateShowCells]; NSInteger youpaiptotalPage = [[[dict objectForKey:@"data"]objectForKey:@"total_page"]integerValue]; self.currentPage = [[[dict objectForKey:@"data"]objectForKey:@"page"]integerValue]; if (self.youpaiptalkDataArray.count == 0&&self.youpaipliveDataArr.count == 0&&self.youpaipListArray.count == 0&&self.youpaipbannerArr.count == 0) { [self.tableView lz_showEmptyViewWithImage:[UIImage imageNamed:@"vqu_images_not_home_data"] content:@"没有搜到相关结果,换个词试试~"]; self.tableView.tableHeaderView = [UIView new]; }else{ [self.tableView lz_hideEmptyView]; } if (self.currentPage>=youpaiptotalPage) { [self.tableView.mj_footer endRefreshingWithNoMoreData]; self.tableView.mj_footer.hidden = YES; } } [self.tableView.mj_footer endRefreshing]; } failure:^(NSError *error) { [self.tableView.mj_footer endRefreshing]; }]; } - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; // [self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:HexColorFromRGB(0xffffff) size:CGSizeMake(KScreenWidth, NavBarHeight)] forBarMetrics:UIBarMetricsDefault]; if (@available(iOS 13.0, *)) { [self.searchBar.searchTextField becomeFirstResponder]; } else { UITextField *searchField = [self.searchBar valueForKey:@"_searchField"]; [searchField becomeFirstResponder]; } } - (void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; } - (void)viewDidLoad { [super viewDidLoad]; self.youpaiplabelViewHeight = 0.0; self.youpaiplabelArray = [NSMutableArray array]; self.youpaiphotUserArray = [NSMutableArray array]; self.youpaippersonArray = [NSMutableArray array]; self.youpaipListArray = [NSMutableArray array]; self.youpaiptalkDataArray = [NSMutableArray array]; self.youpaipliveDataArr = [NSMutableArray array]; self.youpaipbannerArr = [NSMutableArray array]; self.currentPage = 1; self.currentType = 0; self.gender = [LCSaveModel getUserModel].youpaipuserinfo.youpaipgender == 1 ? 2 : 1 ;//女生搜显示男生(无标签),男生搜显示女生(有标签) self.youpaipcontBtnArray = [NSMutableArray array]; self.youpaipsexBtnArray = [NSMutableArray array]; [self youpaifsetupNav]; [self youpaifsetupTableView]; // self.tableView.hidden = YES; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(youpaifchangeHisHeaderViewStatus) name:@"changeHisHeaderView" object:nil]; [self.tableView.mj_header beginRefreshing]; } -(void)youpaifchangeHisHeaderViewStatus{ [self.youpaiphistoryArray removeAllObjects]; self.tableView.tableHeaderView = [UIView new]; } -(void)dealloc{ [[NSNotificationCenter defaultCenter]removeObserver:self];; } - (void)youpaifsetupNav{ UISearchBar* search = [[UISearchBar alloc]initWithFrame:CGRectMake(10, 0, KScreenWidth-80, 44.0f)]; [search setImage:[UIImage imageNamed:@"vqu_images_H_search_icon"] forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal]; search.tintColor = ZYPinkColor; [search setSearchFieldBackgroundImage:[UIImage imageWithColor:LZF7F8FAColor size:CGSizeMake(KScreenWidth-80, 38.0f)] forState:UIControlStateNormal]; UITextField *searchField = [search valueForKey:@"searchField"]; if (searchField) { searchField.frame = CGRectMake(16,8,search.frame.size.width-16,38); [searchField setBackgroundColor:HexColorFromRGB(0x4F4B5B)]; searchField.layer.cornerRadius = 19.0f; searchField.layer.masksToBounds = YES; searchField.font = LCFont(14); searchField.textColor = LZ273145Color; NSMutableAttributedString* placeholder = [[NSMutableAttributedString alloc]initWithString:@"搜索花舞号/昵称"]; [placeholder addAttribute:NSFontAttributeName value:LCFont(14) range:NSMakeRange(0, placeholder.length)]; [placeholder addAttribute:NSForegroundColorAttributeName value:HexColorFromRGB(0xD3D1D7) range:NSMakeRange(0, placeholder.length)]; searchField.attributedPlaceholder = placeholder; } search.delegate = self; self.searchBar = search; UIBarButtonItem* item = [[UIBarButtonItem alloc]initWithCustomView:search]; UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; negativeSpacer.width = 5; self.navigationItem.leftBarButtonItems = @[item]; self.navigationItem.rightBarButtonItem = [UIBarButtonItem itemWithTarget:self action:@selector(youpaifbackVC) title:@"取消" font:LCFont15 titleColor:HexColorFromRGB(0x9F9DA5) highlightedColor:HexColorFromRGB(0x9F9DA5) titleEdgeInsets:UIEdgeInsetsZero]; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ if (self.youpaipisSearch) { HRSearchHomeModel* model = self.youpaippersonArray[indexPath.section]; if (model.youpaiptype == SearchCellType_talkData ||model.youpaiptype == SearchCellType_liveData) { return 84; }else if(model.youpaiptype == SearchCellType_List){ return 68; }else if(model.youpaiptype == SearchCellType_bannerData){ return 116; } else{ return 0; } } return 68; } -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ if (self.youpaipisSearch) { if (self.youpaippersonArray.count>0) { return self.youpaippersonArray.count; } }else{ return 1; } return 0; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ if (self.youpaipisSearch) { if (self.youpaippersonArray.count>0) { HRSearchHomeModel* model = self.youpaippersonArray[section]; if (model.youpaiptype == SearchCellType_talkData) { return self.youpaiptalkDataArray.count; }else if (model.youpaiptype == SearchCellType_liveData){ return self.youpaipliveDataArr.count; }else if (model.youpaiptype == SearchCellType_List){ return self.youpaipListArray.count; }else if (model.youpaiptype == SearchCellType_bannerData){ return self.youpaipbannerArr.count; } else{ return 0; } }else{ return 0; } } return self.youpaiphotUserArray.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ if (self.youpaipisSearch) { if (self.youpaippersonArray.count>0) { HRSearchHomeModel* model = self.youpaippersonArray[indexPath.section]; switch (model.youpaiptype) { case SearchCellType_bannerData: { YOUPAIHRSearchBannerCell* cell = [[YOUPAIHRSearchBannerCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"YOUPAIHRSearchBannerCell"]; if (self.youpaipbannerArr.count>0) { youpaipbannerModel *talmodel = self.youpaipbannerArr[indexPath.row]; self.bannerModel = talmodel; cell.model= talmodel; } cell.backgroundColor = LCBkgColor; [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; return cell; } break; case SearchCellType_talkData: { YOUPAIHRSearchLiveRoomCell* cell = [[YOUPAIHRSearchLiveRoomCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"YOUPAIHRSearchLiveRoomCell"]; if (self.youpaiptalkDataArray.count>0) { talkDataModel *talmodel = self.youpaiptalkDataArray[indexPath.row]; cell.youpaipmodel = talmodel; } [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; return cell; } break; case SearchCellType_liveData: { YOUPAIHRSearchLiveRoomCell* cell = [[YOUPAIHRSearchLiveRoomCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"YOUPAIHRSearchLiveRoomCell"]; if (self.youpaipliveDataArr.count>0) { talkDataModel *talmodel = self.youpaipliveDataArr[indexPath.row]; cell.youpaipmodel = talmodel; } [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; return cell; } break; case SearchCellType_List: { YOUPAILCOnlineCell* cell = [[YOUPAILCOnlineCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UserListCell"]; if (self.youpaipListArray.count>0) { YOUPAILCOnlineModel* listmodel =self.youpaipListArray[indexPath.row]; cell.youpaiponlineModel = listmodel; } [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; return cell; } break; default: break; } }else{ return nil; } }else{ YOUPAILCOnlineCell* cell = [[YOUPAILCOnlineCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UserListCell"]; if (self.youpaiphotUserArray.count>0) { YOUPAILCOnlineModel* model =self.youpaiphotUserArray[indexPath.row]; cell.youpaiponlineModel = model; } // [cell bottomLineforViewHeight:74]; [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; return cell; } return nil; } -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { if (self.youpaipisSearch) { if (self.youpaippersonArray.count>0) { HRSearchHomeModel *model = self.youpaippersonArray[section]; UIView *headerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, 44)]; headerView.backgroundColor = LCWhiteColor; //title UILabel *titleLabel = [UILabel new]; [headerView addSubview:titleLabel]; [titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(14); make.centerY.mas_equalTo(0); }]; titleLabel.textColor = LZ273145Color; titleLabel.font = LCBoldFont(14); //数量 UIButton *rightBtn = [UIButton new]; [headerView addSubview:rightBtn]; [rightBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.right.mas_equalTo(-14); make.centerY.mas_equalTo(0); }]; [rightBtn setImage:[UIImage imageNamed:@"vqu_images_chatroom_search_more"] forState:UIControlStateNormal]; rightBtn.titleLabel.font = [UIFont systemFontOfSize:12]; [rightBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [rightBtn setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft]; if (model.youpaiptype == SearchCellType_talkData) { titleLabel.text = @"相关聊天室"; [rightBtn setTitle:[NSString stringWithFormat:@"全部房间(%ld)",self.model.youpaiptalkDataTotalNums] forState:UIControlStateNormal]; [rightBtn addTarget:self action:@selector(youpaiftalkDataRightBtnClick) forControlEvents:UIControlEventTouchUpInside]; }else if (model.youpaiptype == SearchCellType_liveData){ titleLabel.text = @"相关直播间"; [rightBtn setTitle:[NSString stringWithFormat:@"全部房间(%ld)",self.model.youpaipliveDataTotalNums] forState:UIControlStateNormal]; [rightBtn addTarget:self action:@selector(youpaifliveDataRightBtnClick) forControlEvents:UIControlEventTouchUpInside]; }else if(model.youpaiptype == SearchCellType_List){ titleLabel.text = @"相关用户"; rightBtn.hidden = YES; }else if(model.youpaiptype == SearchCellType_bannerData){ // self.tableView.tableHeaderView = [UIView new]; return [UIView new]; } return headerView; }else{ return [UIView new]; } }else{ UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,0,KScreenWidth,54)]; view.backgroundColor = LCWhiteColor; UILabel* tipLabel = [[UILabel alloc]initWithFrame:CGRectMake(16,19,100,17)]; tipLabel.textColor = [UIColor blackColor]; tipLabel.font = LCBoldFont(16); tipLabel.text = @"热搜榜"; [view addSubview:tipLabel]; return view; } return nil; } #pragma mark 头部右边3个按钮事件 //聊天室 -(void)youpaiftalkDataRightBtnClick{ YOUPAIHRSearchResultVC *vc = [YOUPAIHRSearchResultVC new]; vc.type = 1; vc.keyword = self.currentString; [self.navigationController pushViewController:vc animated:YES]; } //直播间 -(void)youpaifliveDataRightBtnClick{ YOUPAIHRSearchResultVC *vc = [YOUPAIHRSearchResultVC new]; vc.type = 2; vc.keyword = self.currentString; [self.navigationController pushViewController:vc animated:YES]; } -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { if (self.youpaipbannerArr.count>0) { return 0; }else{ return 54.0f; } } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ if (self.youpaipisSearch) { HRSearchHomeModel *model = self.youpaippersonArray[indexPath.section]; if (model.youpaiptype == SearchCellType_talkData) { UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; cell.userInteractionEnabled = NO; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ cell.userInteractionEnabled = YES; }); talkDataModel *model1 = self.youpaiptalkDataArray[indexPath.row]; NSString *roomId = [NSString stringWithFormat:@"%@",@(model1.youpaiproom_id)]; if ([[YOUPAILZChatRoomManager shareManager].chatroomModel.youpaiproom_id isEqual:roomId] && [YOUPAILZChatRoomManager shareManager].chatroomController != nil) { [[YOUPAILZChatRoomManager shareManager] youpaifshowChatRoom]; return; } [self youpaifshowPasswordWindowWithRoomId:[NSString stringWithFormat:@"%ld",(long)model1.youpaiproom_id] youpaipis_comein_room_hide:0]; }else if (model.youpaiptype == SearchCellType_liveData){ YOUPAIHRSearchResultVC *vc = [YOUPAIHRSearchResultVC new]; vc.type = 2; vc.keyword = self.currentString; [self.navigationController pushViewController:vc animated:YES]; }else if (model.youpaiptype == SearchCellType_bannerData){ ZCBaseWebVC* baseWeb = [[ZCBaseWebVC alloc]init]; baseWeb.contentUrl = self.bannerModel.youpaiplink_url; [self.navigationController pushViewController:baseWeb animated:YES]; [LCHttpHelper requestWithURLString:HomeSearchSearch_stats parameters:@{@"key":self.bannerModel.youpaipkey} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) { NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code==0) {//成功 } } failure:^(NSError *error) { }]; } else { ListModel* model =self.youpaipListArray[indexPath.row]; YOUPAILZUserShowVC *userShow = [[YOUPAILZUserShowVC alloc] init]; userShow.youpaipuserId = model.youpaipuserid; [self.navigationController pushViewController:userShow animated:YES]; } }else{ YOUPAILCOnlineModel* model =self.youpaiphotUserArray[indexPath.row]; YOUPAILZUserShowVC *userShow = [[YOUPAILZUserShowVC alloc] init]; userShow.youpaipuserId = model.youpaipuserid; [self.navigationController pushViewController:userShow animated:YES]; } } - (void)youpaifshowPasswordWindowWithRoomId:(NSString *)roomId youpaipis_comein_room_hide:(NSInteger)youpaipis_comein_room_hide{ @weakify(self); [LCHttpHelper requestWithURLString:GetRoomStatus parameters:@{@"room_id":roomId} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) { @strongify(self); NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code==0) { NSDictionary *data = [dict objectForKey:@"data"]; if ([[data objectForKey:@"pwd"] integerValue] == 1) { // 有密码 YOUPAILZChatRoomPasswordWindow *window = [[YOUPAILZChatRoomPasswordWindow alloc] init]; [window setYoupaippasswordBlock:^(NSString * _Nonnull password, YOUPAILZChatRoomPasswordWindow * _Nonnull window) { @strongify(self); [self youpaifgoChatRoomVCWithPwd:password RoomId:roomId youpaipis_comein_room_hide:youpaipis_comein_room_hide window:window]; }]; [self TFPresentVC:window completion:^{}]; }else{ [self youpaifgoChatRoomVCWithPwd:@"" RoomId:roomId youpaipis_comein_room_hide:youpaipis_comein_room_hide window:nil]; } } } failure:^(NSError *error) { }]; } /// 加入语聊房 /// @param pwd 密码 /// @param roomId 房间号 /// @param youpaipis_comein_room_hide 是否悄悄进房 /// @param window 密码框 - (void)youpaifgoChatRoomVCWithPwd:(NSString *)pwd RoomId:(NSString *)roomId youpaipis_comein_room_hide:(NSInteger)youpaipis_comein_room_hide window:(YOUPAILZChatRoomPasswordWindow *)window{ [ZCHUDHelper show]; @weakify(self); [LCHttpHelper requestWithURLString:JoinTalk parameters:@{@"room_id":roomId,@"pwd":pwd,@"is_comein_room_hide":@(youpaipis_comein_room_hide)} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) { [ZCHUDHelper dismiss]; @strongify(self); NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code==0) { if (window != nil) { [window dismissViewControllerAnimated:YES completion:^{}]; } [[YOUPAILZChatRoomManager shareManager] youpaifleaveChannel]; YOUPAILZChatRoomModel *youpaipchatroomModel = [YOUPAILZChatRoomModel mj_objectWithKeyValues:dict[@"data"]]; // dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ YOUPAILZChatRoomVC *vc = [[YOUPAILZChatRoomVC alloc] init]; vc.youpaipchatroomModel = youpaipchatroomModel; [self.navigationController pushViewController:vc animated:YES]; [YOUPAILZChatRoomManager shareManager].chatroomModel = vc.youpaipchatroomModel; [YOUPAILZChatRoomManager shareManager].chatroomController = vc; // }); }else{ if (window != nil) { [window youpaifshowHUDWithTitle:[dict objectForKey:@"message"]]; }else{ [ZCHUDHelper showTitle:[dict objectForKey:@"message"]]; } } } failure:^(NSError *error) { [ZCHUDHelper dismiss]; }]; } -(void)youpaifbackVC{ [self.searchBar resignFirstResponder]; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self popEffectDismiss]; }); } - (void)youpaifcancelClick{ self.searchBar.text = @""; [self searchBar:self.searchBar textDidChange:@""]; } - (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{ [self.searchBar resignFirstResponder]; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self popEffectDismiss]; }); } - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{ [searchBar resignFirstResponder]; //判断空格 if ([[searchBar.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]length]==0) { searchBar.text = @""; self.youpaipisSearch = NO; self.youpaipisLabelSearch = NO; self.tableView.tableHeaderView = [self youpaiftableHeaderView]; }else{ self.youpaipisSearch = YES; self.youpaipisLabelSearch = NO; self.currentString = searchBar.text; [self youpaifsetHistoryArrWithStr:searchBar.text]; [LCHttpHelper requestWithURLString:HomeSearch parameters:@{@"text":self.currentString,@"type":@(self.currentType),@"page":@(1)} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) { NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code==0) {//成功 [self.youpaippersonArray removeAllObjects]; if (self.youpaiptalkDataArray.count>0) { [self.youpaiptalkDataArray removeAllObjects]; } if (self.youpaipliveDataArr.count>0) { [self.youpaipliveDataArr removeAllObjects]; } if (self.youpaipListArray.count>0) { [self.youpaipListArray removeAllObjects]; } if (self.youpaipbannerArr.count>0) { [self.youpaipbannerArr removeAllObjects]; } YOUPAIHRSearchModel* model = [YOUPAIHRSearchModel mj_objectWithKeyValues:[dict objectForKey:@"data"]]; youpaipbannerModel *model1 = [youpaipbannerModel mj_objectWithKeyValues:model.youpaipbannerData]; self.model = model; [self.youpaiptalkDataArray addObjectsFromArray:model.youpaiptalkData]; [self.youpaipliveDataArr addObjectsFromArray:model.youpaipliveData]; [self.youpaipListArray addObjectsFromArray:model.youpaiplist]; if (model1.youpaipkey.length>0) { [self.youpaipbannerArr addObject:model1]; } [self youpaifupdateShowCells]; NSInteger youpaiptotalPage = [[[dict objectForKey:@"data"]objectForKey:@"total_page"]integerValue]; self.currentPage = [[[dict objectForKey:@"data"]objectForKey:@"page"]integerValue]; self.tableView.tableHeaderView = [UIView new]; if (self.youpaiptalkDataArray.count == 0&&self.youpaipliveDataArr.count == 0&&self.youpaipListArray.count == 0&&self.youpaipbannerArr.count == 0) { [self.tableView lz_showEmptyViewWithImage:[UIImage imageNamed:@"vqu_images_not_home_data"] content:@"没有搜到相关结果,换个词试试~"]; }else{ [self.tableView lz_hideEmptyView]; } if (self.currentPage>=youpaiptotalPage) { [self.tableView.mj_footer endRefreshingWithNoMoreData]; self.tableView.mj_footer.hidden = YES; } } } failure:^(NSError *error) { }]; } } - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{ NSLog(@"%@",searchText); NSLog(@"%@",searchBar.text); if ([searchBar.text isEqualToString:@""]) { // self.tableView.hidden = YES; [self.youpaippersonArray removeAllObjects]; self.currentPage = 1; self.currentString = @""; self.youpaipisSearch = NO; [self.tableView lz_hideEmptyView]; self.tableView.tableHeaderView = [self youpaiftableHeaderView]; [self.tableView.mj_header beginRefreshing]; }else{ // self.youpaipisSearch = YES; // self.youpaipisLabelSearch = NO; } } #pragma mark ZYLabelViewDelegate 标签搜索 -(void)youpaifclickLabel:(YOUPAIZYLabelModel *)labelModel { NSLog(@"%@",labelModel.youpaipname); NSLog(@"%@",labelModel.youpaiptag_id); self.youpaiplabel_id = labelModel.youpaiptag_id; self.youpaiplabel_name = labelModel.youpaipname; self.searchBar.text = self.youpaiplabel_name; NSLog(@"%@",@{@"type":@(self.currentType),@"page":@(1),@"label_id":self.youpaiplabel_id}); [LCHttpHelper requestWithURLString:HomeSearch parameters:@{@"type":@(self.currentType),@"page":@(1),@"label_id":self.youpaiplabel_id} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) { NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code==0) {//成功 [self.youpaiphotUserArray removeAllObjects]; NSMutableArray* tempArray = [YOUPAILCOnlineModel mj_objectArrayWithKeyValuesArray:[[dict objectForKey:@"data"]objectForKey:@"list"]]; [self.youpaiphotUserArray addObjectsFromArray:tempArray]; self.currentPage = [[[dict objectForKey:@"data"] objectForKey:@"page"]integerValue]; NSInteger youpaiptotalPage = [[[dict objectForKey:@"data"] objectForKey:@"total_page"]integerValue]; [self.tableView reloadData]; if (self.currentPage>=youpaiptotalPage) { [self.tableView.mj_footer endRefreshingWithNoMoreData]; self.tableView.mj_footer.hidden = YES; } } [self.tableView.mj_footer endRefreshing]; } failure:^(NSError *error) { [self.tableView.mj_footer endRefreshing]; }]; } -(void)youpaifupdateShowCells{ @synchronized (self) { [self.youpaippersonArray removeAllObjects]; if (self.youpaipbannerArr.count) { HRSearchHomeModel *model = [HRSearchHomeModel new]; model.youpaiptype = SearchCellType_bannerData; [self.youpaippersonArray addObject:model]; } // if (self.youpaiptalkDataArray.count) { // HRSearchHomeModel *model = [HRSearchHomeModel new]; // model.youpaiptype = SearchCellType_talkData; // // [self.youpaippersonArray addObject:model]; // } // if (self.youpaipliveDataArr.count) { // HRSearchHomeModel *model = [HRSearchHomeModel new]; // model.youpaiptype = SearchCellType_liveData; // // [self.youpaippersonArray addObject:model]; // } if (self.youpaipListArray.count) { HRSearchHomeModel *model = [HRSearchHomeModel new]; model.youpaiptype = SearchCellType_List; [self.youpaippersonArray addObject:model]; } [self.tableView reloadData]; } } - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ [self.searchBar endEditing:YES]; } - (void)youpaifsetHistoryArrWithStr:(NSString *)str { for (int i = 0; i < _youpaiphistoryArray.count; i++) { if ([_youpaiphistoryArray[i] isEqualToString:str]) { [_youpaiphistoryArray removeObjectAtIndex:i]; break; } } [_youpaiphistoryArray insertObject:str atIndex:0]; [NSKeyedArchiver archiveRootObject:_youpaiphistoryArray toFile:KHistorySearchPath]; } - (NSMutableArray *)youpaiphistoryArray { if (!_youpaiphistoryArray) { _youpaiphistoryArray = [NSKeyedUnarchiver unarchiveObjectWithFile:KHistorySearchPath]; if (!_youpaiphistoryArray) { self.youpaiphistoryArray = [NSMutableArray array]; } } return _youpaiphistoryArray; } @end