// // JXCsHomeVc.m // shiku_im // // Created by 123 on 2020/4/28. // Copyright © 2020 Reese. All rights reserved. // (@"JXMainViewController_Message") PSMyViewController #import "JXCsHomeVc.h" #import "UIView+LK.h" #import "CYWebAddPointVC.h" #import "XMGMainViewController.h" #import "JXShowMainView.h" #import "YPTabBarController.h" @interface JXCsHomeVc () /** 标签栏底部的红色指示器 */ @property (nonatomic, weak) UIView *indicatorView; /** 当前选中的按钮 */ @property (nonatomic, weak) UIButton *selectedButton; @property (nonatomic, weak) UIButton *button_n; @property (nonatomic,copy) NSString *linkName1; @property (nonatomic,copy) NSString *linkURL1; @property (nonatomic,copy) NSString *imgUrl1; @property (weak, nonatomic) UIView *sliderView; @property (strong, nonatomic) MASConstraint *sliderViewCenterX; @property (weak, nonatomic) UIButton *refreshButton; @property (weak, nonatomic) UIButton *homeButton; @property (nonatomic,strong) NSString *indexGhome; @end @implementation JXCsHomeVc -(instancetype)init{ if (self=[super init]) { [g_notify addObserver:self selector:@selector(newMsgCome:) name:kXMPPNewMsgNotifaction object:nil];//收到了一条新消息 [g_notify addObserver:self selector:@selector(hiddenTipLabel:) name:@"hiddenTip" object:nil];//收到了一条新消息 [g_notify addObserver:self selector:@selector(goBack:) name:@"longGoback" object:nil]; } return self; } - (void)hiddenTipLabel:(NSNotification *)note{ self.countTipL.hidden=YES; } - (void)newMsgCome:(NSNotification *)note{ self.countTipL.hidden=NO; } -(void)setStrURL:(NSString *)strURL{ self.countTipL.hidden=YES; } - (void)viewDidLoad { [super viewDidLoad]; [self setupChildViewControllers]; [self setupNavBar]; [self setupContentView]; [self setupTitlesView]; // [self.topButton addTarget:self action:@selector(topBtnClick) forControlEvents:UIControlEventTouchUpInside]; [g_notify addObserver:self selector:@selector(showAD) name:kLaunchAdShowFinishNotifaction object:nil]; } - (void)showAD { [JXShowMainView showView]; } - (void)dealloc { [g_notify removeObserver:self]; } - (void)setupContentView { UIScrollView *contentView = [[UIScrollView alloc] init]; contentView.backgroundColor = kRGBColor(250, 250, 250); contentView.frame = CGRectMake(0, JX_SCREEN_TOP, self.view.bounds.size.width, self.view.bounds.size.height-JX_SCREEN_TOP); contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; contentView.delegate = self; contentView.showsHorizontalScrollIndicator = NO; contentView.showsVerticalScrollIndicator = NO; contentView.pagingEnabled = YES; contentView.bounces=NO; contentView.contentSize = CGSizeMake(contentView.xmg_width * self.childViewControllers.count, 0); [self.view addSubview:contentView]; self.contentView = contentView; id traget = self.navigationController.interactivePopGestureRecognizer.delegate; UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc]initWithTarget:traget action:nil]; [contentView addGestureRecognizer:pan]; UISwipeGestureRecognizer * swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeAction:)]; swipeRight.direction = UISwipeGestureRecognizerDirectionLeft; [contentView addGestureRecognizer:swipeRight]; UISwipeGestureRecognizer * swipeleft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeAction:)]; swipeleft.direction = UISwipeGestureRecognizerDirectionRight; [contentView addGestureRecognizer:swipeleft]; // 手势的优先级 优先响应swipe手势 [pan requireGestureRecognizerToFail:swipeRight]; [pan requireGestureRecognizerToFail:swipeleft]; } -(void)swipeAction:(UISwipeGestureRecognizer *)sender { if (sender.direction ==UISwipeGestureRecognizerDirectionLeft) { int index =1; [self titleClick:self.titlesView.subviews[index]]; [self switchController:index]; }else if(sender.direction ==UISwipeGestureRecognizerDirectionRight){ int index =0; [self titleClick:self.titlesView.subviews[index]]; [self switchController:index]; } } - (void)goBack:(NSNotification *)note{ [self.contentView setContentOffset:CGPointMake(0 * JX_SCREEN_WIDTH, self.contentView.contentOffset.y) animated:YES]; self.selectedButton.enabled = YES; _topButton.enabled = NO; self.selectedButton = _topButton; // 消除约束 [self.sliderViewCenterX uninstall]; self.sliderViewCenterX = nil; // 添加约束 [self.sliderView mas_makeConstraints:^(MASConstraintMaker *make) { self.sliderViewCenterX = make.centerX.equalTo(_topButton); }]; [UIView animateWithDuration:0.25 animations:^{ [self.sliderView layoutIfNeeded]; }]; } -(void)setBlcokBTb:(shuaxinBtn)blcokBTb{ //获取说有群信息 [g_server listHisRoom:0 pageSize:1000 toView:self]; [self setupChildViewControllers]; [self setupNavBar]; [self setupContentView]; [self setupTitlesView]; _indexGhome=@"1"; int index =0; [self titleClick:self.topButton]; [self switchController:index]; } - (void)goHomeWebPage { [g_notify postNotificationName:KGoHomeWebPageNotification object:nil]; } - (void)goRefreshWebPage { [g_notify postNotificationName:KGoRefreshWebPageNotification object:nil]; } - (void)setupTitlesView { UIView *backView = [[UIView alloc] init]; backView.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0]; backView.autoresizingMask = UIViewAutoresizingFlexibleWidth; backView.frame = CGRectMake(0, 0, self.view.frame.size.width, JX_SCREEN_TOP); [self.view addSubview:backView]; UIButton *homeButton = [UIButton buttonWithType:(UIButtonTypeCustom)]; homeButton.frame =CGRectMake(10, JX_STATUSBAR_H+5, 20, 20); [homeButton setImage:[UIImage imageNamed:@"home_home"] forState:(UIControlStateNormal)]; [backView addSubview:homeButton]; [homeButton addTarget:self action:@selector(goHomeWebPage) forControlEvents:(UIControlEventTouchUpInside)]; _homeButton = homeButton; UIButton *refreshButton = [UIButton buttonWithType:(UIButtonTypeCustom)]; refreshButton.frame =CGRectMake(JX_SCREEN_WIDTH-20-10, JX_STATUSBAR_H+5, 20, 20); [refreshButton setImage:[UIImage imageNamed:@"home_refresh"] forState:(UIControlStateNormal)]; [backView addSubview:refreshButton]; [refreshButton addTarget:self action:@selector(goRefreshWebPage) forControlEvents:(UIControlEventTouchUpInside)]; _refreshButton = refreshButton; UIView *titlesView = [[UIView alloc] init]; titlesView.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0]; titlesView.autoresizingMask = UIViewAutoresizingFlexibleWidth; titlesView.frame = CGRectMake(self.view.frame.size.width/3, 0, self.view.frame.size.width/3, JX_SCREEN_TOP); [backView addSubview:titlesView]; self.titlesView = titlesView; // 5个按钮 XMGTitleButton *button = [self setupTitleButton:@"购彩"]; [self setupTitleButton:@"聊天"]; [self titleClick:button]; [self switchController:0]; self.topButton=button; // 底部滑条 UIView *sliderView = [[UIView alloc] init]; sliderView.backgroundColor = [UIColor redColor]; [self.titlesView addSubview:sliderView]; self.sliderView = sliderView; [sliderView mas_makeConstraints:^(MASConstraintMaker *make) { make.size.mas_equalTo(CGSizeMake([[button titleForState:UIControlStateNormal] sizeWithAttributes:@{NSFontAttributeName : button.titleLabel.font}].width/1.5, 3)); make.bottom.mas_equalTo(self.titlesView.mas_bottom).mas_offset(-4); self.sliderViewCenterX = make.centerX.equalTo(button); }]; UILabel *tipLable=[[UILabel alloc]init]; tipLable.backgroundColor=[UIColor redColor]; tipLable.layer.cornerRadius=4; tipLable.layer.masksToBounds=YES; [titlesView addSubview:tipLable]; tipLable.hidden=YES; self.countTipL=tipLable; [tipLable mas_makeConstraints:^(MASConstraintMaker *make) { make.width.mas_equalTo(8); make.height.mas_equalTo(8); make.top.mas_equalTo(JX_SCREEN_HEIGHT>=812?49:25); make.left.mas_equalTo(self.titlesView.xmg_width-15); }]; } - (XMGTitleButton *)setupTitleButton:(NSString *)title { XMGTitleButton *button = [XMGTitleButton buttonWithType:UIButtonTypeCustom]; [button setTitle:title forState:UIControlStateNormal]; [button addTarget:self action:@selector(titleClick:) forControlEvents:UIControlEventTouchUpInside]; [self.titlesView addSubview:button]; self.topButton=button; [button mas_makeConstraints:^(MASConstraintMaker *make) { make.width.mas_equalTo(self.titlesView.xmg_width/2); make.top.mas_equalTo(JX_SCREEN_HEIGHT>=812?44:20); NSUInteger index = self.titlesView.subviews.count - 1; if (index == 0) { make.left.mas_equalTo(self.titlesView); } else { make.left.mas_equalTo(self.titlesView.xmg_width/2); } }]; return button; } - (void)titleClick:(UIButton *)button { self.selectedButton.enabled = YES; button.enabled = NO; self.selectedButton = button; // 消除约束 [self.sliderViewCenterX uninstall]; self.sliderViewCenterX = nil; // 添加约束 [self.sliderView mas_makeConstraints:^(MASConstraintMaker *make) { self.sliderViewCenterX = make.centerX.equalTo(button); }]; [UIView animateWithDuration:0.25 animations:^{ [self.sliderView layoutIfNeeded]; }]; if ([_indexGhome isEqualToString:@"1"]) { [self.contentView setContentOffset:CGPointMake(0 * self.contentView.frame.size.width, self.contentView.contentOffset.y) animated:YES]; }else{ int index = (int)[self.titlesView.subviews indexOfObject:button]; [self.contentView setContentOffset:CGPointMake(index * self.contentView.frame.size.width, self.contentView.contentOffset.y) animated:YES]; } } - (void)setupNavBar { self.automaticallyAdjustsScrollViewInsets = NO; } - (void)setupChildViewControllers { CYWebAddPointVC *vc = [[CYWebAddPointVC alloc] init]; [self setupOneChildViewController:vc]; [self setupOneChildViewController:[XMGMainViewController new]]; } - (void)setupOneChildViewController:(UIViewController *)type { if([type isKindOfClass:[CYWebAddPointVC class]]){ CYWebAddPointVC *vc = [[CYWebAddPointVC alloc] init]; NSString *memberAcc=[[NSUserDefaults standardUserDefaults] objectForKey:@"www_url"]; vc.strURL=memberAcc; [self addChildViewController:vc]; }else{ // XMGTabarVC JXXMMainVc。XMGMainViewController JXXMMainVc XMGMainViewController *vc = [[XMGMainViewController alloc] init]; [self addChildViewController:vc]; } } - (void)switchController:(int)index { [g_notify postNotificationName:@"KOPENLONG" object:@(index)]; if (index == 1) { _homeButton.hidden = YES; _refreshButton.hidden = YES; }else { _homeButton.hidden = NO; _refreshButton.hidden = NO; } if ([_indexGhome isEqualToString:@"1"]) { CYWebAddPointVC *vc=[CYWebAddPointVC new]; vc.view.xmg_y = 0; vc.view.xmg_width = self.contentView.xmg_width; vc.view.xmg_height = self.contentView.xmg_height; vc.view.xmg_x = vc.view.xmg_width * index; [self.contentView addSubview:vc.view]; }else{ CYWebAddPointVC *vc = self.childViewControllers[index]; vc.view.xmg_y = 0; vc.view.xmg_width = self.contentView.xmg_width; vc.view.xmg_height = self.contentView.xmg_height; vc.view.xmg_x = vc.view.xmg_width * index; [self.contentView addSubview:vc.view]; } } #pragma mark - - (void)scrollViewDidEndDecelerating:(nonnull UIScrollView *)scrollView { int index = scrollView.contentOffset.x / scrollView.frame.size.width; [self titleClick:self.titlesView.subviews[index]]; [self switchController:index]; } - (void)scrollViewDidEndScrollingAnimation:(nonnull UIScrollView *)scrollView { int a=(int)(scrollView.contentOffset.x / scrollView.frame.size.width); [self switchController:a]; // [g_notify postNotificationName:@"closeLong" object:nil userInfo:@{@"aa":[NSString stringWithFormat:@"%d",a]}]; } -(void) didServerResultSucces:(JXConnection*)aDownload dict:(NSDictionary*)dict array:(NSArray*)array1{ if([aDownload.action isEqualToString:act_roomList] || [aDownload.action isEqualToString:act_roomListHis] ){ for (int i = 0; i < [array1 count]; i++) { NSDictionary *dict=array1[i]; JXUserObject* user = [[JXUserObject alloc]init]; user.userNickname = [dict objectForKey:@"name"]; user.userId = [dict objectForKey:@"jid"]; user.userDescription = [dict objectForKey:@"desc"]; user.roomId = [dict objectForKey:@"id"]; user.showRead = [dict objectForKey:@"showRead"]; user.showMember = [dict objectForKey:@"showMember"]; user.allowSendCard = [dict objectForKey:@"allowSendCard"]; user.chatRecordTimeOut = [NSString stringWithFormat:@"%@", [dict objectForKey:@"chatRecordTimeOut"]]; user.offlineNoPushMsg = [(NSDictionary *)[dict objectForKey:@"member"] objectForKey:@"offlineNoPushMsg"]; user.talkTime = [dict objectForKey:@"talkTime"]; user.allowInviteFriend = [dict objectForKey:@"allowInviteFriend"]; user.allowUploadFile = [dict objectForKey:@"allowUploadFile"]; user.allowConference = [dict objectForKey:@"allowConference"]; user.allowSpeakCourse = [dict objectForKey:@"allowSpeakCourse"]; user.category = [dict objectForKey:@"category"]; user.createUserId = [dict objectForKey:@"userId"]; user.timeCreate = [NSDate dateWithTimeIntervalSince1970:[[dict objectForKey:@"createTime"] longLongValue]]; user.isNeedVerify = [dict objectForKey:@"isNeedVerify"]; if([[dict allKeys] containsObject:@"groupType"]) { NSDictionary *dictby=[dict objectForKey:@"groupType"]; user.groupType = [dictby objectForKey:@"typeName"]; }else{ user.groupType = @"100000"; } NSDictionary *member = [dict objectForKey:@"member"]; #ifdef IS_MsgEncrypt if ([member objectForKey:@"chatKeyGroup"]) { user.chatKeyGroup = [g_msgUtil encryptRoomMsgKey:user.roomId randomKey:[member objectForKey:@"chatKeyGroup"]]; } #endif if ([aDownload.action isEqualToString:act_roomListHis]) { if (![user haveTheUser]){ [user insertRoom]; }else { [user updateUserNickname]; [user update]; } } } } } @end