// // myGambitCenterController.m // ThePaperHD // // Created by liyuan on 15/4/17. // Copyright (c) 2015年 scar1900. All rights reserved. // #import "myGambitCenterController.h" #import "ATPagingView.h" #import "myAttentionController.h" #import "myCreateController.h" @interface myGambitCenterController () @property(nonatomic, strong)UIButton *closeBtn; @property(nonatomic, strong)UIButton *editBtn; @property(nonatomic, strong)UILabel *titleLabel; @property(nonatomic, strong)UIView *backView; @property(nonatomic, strong)UIButton *attentionBtn; @property(nonatomic, strong)UIButton *myCreateBtn; @property(nonatomic, strong)ATPagingView *pageView; @property(nonatomic, strong)UIView *menuRubberView; @property(nonatomic, strong)NSMutableArray *viewControllers; @property(nonatomic, strong)NSMutableArray *pageViewControllers; @property(nonatomic, assign)BOOL editIsHidden; @end @implementation myGambitCenterController @synthesize viewControllers,pageViewControllers; @synthesize editIsHidden; @synthesize currentIndex = _currentIndex; - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor clearColor]; self.view.frame = CGRectMake(0, 0, gambitCenterPopSize.width, gambitCenterPopSize.height); [self.view addSubview:self.closeBtn]; [self.view addSubview:self.titleLabel]; [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(gambitCenterPopSize.width-50, 0, 50, 80); [self.editBtn setImageEdgeInsets:UIEdgeInsetsMake(15, 0, 15, 0)]; [self.view addSubview:self.backView]; [self addTabButtns]; // [self addPageView]; // Do any additional setup after loading the view. } #pragma mark - view - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.navigationController.navigationBarHidden = YES; [self enablePopBackTap]; if (self.pageViewControllers.count > 0) { [self setViewAndEditBtnStatusWithIndex]; } } - (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; } - (UIButton*)editBtn { if (!_editBtn) { _editBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_editBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [_editBtn setTitleColor:[UIColor colorWithHexString:BLUECOLOR] forState:UIControlStateHighlighted]; [_editBtn setTitle:@"编辑" forState:UIControlStateNormal]; [_editBtn setTitle:@"完成" forState:UIControlStateSelected]; // if (self.currentIndex == 0) { [_editBtn addTarget:self action:@selector(attentionSelector:) forControlEvents:UIControlEventTouchUpInside]; // }else{ // [_editBtn addTarget:self action:@selector(createSelector:) forControlEvents:UIControlEventTouchUpInside]; // } // [_editBtn setImage:Image(@"Button/editPop.png") forState:UIControlStateNormal]; // [_editBtn setImage:Image(@"Button/popConfirmBtn.png") forState:UIControlStateSelected]; // [_editBtn addTarget:self action:@selector(clickEditBtn:) forControlEvents:UIControlEventTouchUpInside]; // _editBtn.hidden = YES; // if (self.pageView.currentPageIndex == 0) { // [_editBtn setTitle:@"编辑" forState:UIControlStateNormal]; // }else{ // myAttentionController *vc = [myAttentionController new]; // [_editBtn setTitle:@"编辑" forState:UIControlStateNormal]; // [_editBtn addTarget:self action:@selector(attentionSelector:) forControlEvents:UIControlEventTouchUpInside]; } return _editBtn; } -(void)editHidden:(BOOL)isHidden{//我的话题-我创建的,如下操作后右上角会显示“编辑”(bug:4277) if (self.pageView.currentPageIndex ==0) { editIsHidden = isHidden; self.editBtn.hidden = isHidden; if(!isHidden){ self.editBtn.selected = NO; [_editBtn addTarget:self action:@selector(attentionSelector:) forControlEvents:UIControlEventTouchUpInside]; } }else{ self.editBtn.hidden = NO; } } -(void)goAsk{ if ([self.gambitCenterDelegate respondsToSelector:@selector(gotoAskVC)]) { [self.gambitCenterDelegate gotoAskVC]; } } -(void)gotoCreate:(TopicInfoBO *)topicInfo tag:(NSString *)tag{//【需求】话题:话题修改(bug:4313) if ([self.gambitCenterDelegate respondsToSelector:@selector(gotoCreateVC:tag:)]) { [self.gambitCenterDelegate gotoCreateVC:topicInfo tag:tag]; } } //-(void)gotoCreate:(TopicInfoBO *)topicInfo{ // if ([self.gambitCenterDelegate respondsToSelector:@selector(gotoCreateVC:)]) { // [self.gambitCenterDelegate gotoCreateVC:topicInfo]; // } //} -(void)gotoCreateTopic:(TopicInfoBO *)topicInfo{ if ([self.gambitCenterDelegate respondsToSelector:@selector(gotoInfoVc:)]) { [self.gambitCenterDelegate gotoInfoVc:topicInfo]; } } -(void)attentionToTopic:(TopicInfoBO *)topicInfo{ if ([self.gambitCenterDelegate respondsToSelector:@selector(gotoInfoVc:)]) { [self.gambitCenterDelegate gotoInfoVc:topicInfo]; } } - (void)attentionSelector:(UIButton*)btn { btn.selected = !btn.selected; [self.editBtn setTitle:@"编辑" forState:UIControlStateNormal]; [self.editBtn setTitle:@"完成" forState:UIControlStateSelected]; if (btn.selected) { self.editBtn.selected = YES; }else{ self.editBtn.selected = NO; } myAttentionController *vc = self.pageViewControllers[0]; [vc editAttentionTopic:btn.selected]; } - (void)createSelector:(UIButton*)btn { [self.editBtn setTitle:@"创建" forState:UIControlStateSelected]; if ([self.gambitCenterDelegate respondsToSelector:@selector(gotoCreateVC:tag:)]) { [self.gambitCenterDelegate gotoCreateVC:nil tag:@"0"]; } } - (UIView*)backView { if (!_backView) { _backView = [[UIView alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(self.titleLabel.frame), gambitCenterPopSize.width, gambitCenterPopSize.height-80)]; _backView.backgroundColor = [UIColor colorWithHexString:BackGroundColor]; } return _backView; } - (UIButton*)attentionBtn { if (!_attentionBtn) { _attentionBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_attentionBtn setTitle:@"我关注的" forState:UIControlStateNormal]; _attentionBtn.titleLabel.font = appFont(20, NO); [_attentionBtn setTitleColor:[UIColor colorWithHexString:TextGray] forState:UIControlStateNormal]; [_attentionBtn setTitleColor:[UIColor colorWithHexString:BLUECOLOR] forState:UIControlStateSelected]; _attentionBtn.frame = CGRectMake(15, 0, (gambitCenterPopSize.width-30)/2, 114/2); [_attentionBtn addTarget:self action:@selector(attentionEvent:) forControlEvents:UIControlEventTouchUpInside]; } return _attentionBtn; } - (UIButton*)myCreateBtn { if (!_myCreateBtn) { _myCreateBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_myCreateBtn setTitle:@"我创建的" forState:UIControlStateNormal]; _myCreateBtn.titleLabel.font = appFont(20, NO); [_myCreateBtn setTitleColor:[UIColor colorWithHexString:TextGray] forState:UIControlStateNormal]; _myCreateBtn.frame = CGRectMake(CGRectGetMaxX(self.attentionBtn.frame),0 , (gambitCenterPopSize.width-30)/2, 114/2); [_myCreateBtn addTarget:self action:@selector(createEvent:) forControlEvents:UIControlEventTouchUpInside]; } return _myCreateBtn; } - (UIView*)menuRubberView { if (!_menuRubberView) { _menuRubberView = [[UIView alloc]initWithFrame:CGRectMake(15,114/2-3, (gambitCenterPopSize.width-30)/2, 3)]; _menuRubberView.backgroundColor = [UIColor colorWithHexString:BLUECOLOR]; } return _menuRubberView; } - (ATPagingView*)pageView { if (!_pageView) { _pageView = [[ATPagingView alloc]initWithFrame:CGRectMake(0, 114/2, gambitCenterPopSize.width, CGRectGetHeight(self.backView.bounds) - 114/2)]; _pageView.gapBetweenPages = 0; _pageView.recyclingEnabled = NO; _pageView.backgroundColor = [UIColor whiteColor]; _pageView.delegate = self; _pageView.scrollView.bounces = NO; _pageView.scrollView.scrollEnabled = YES; } return _pageView; } -(void)setCurrentIndex:(NSInteger)index{ _currentIndex = index; self.pageView.currentPageIndex = index; } #pragma mark - add subviews - (void)addTabButtns { [self.backView addSubview:self.attentionBtn]; [self.backView addSubview:self.myCreateBtn]; UIView *belowLine = [[UIView alloc]initWithFrame:CGRectMake(15, 114/2-1, gambitCenterPopSize.width-30, 1)]; belowLine.backgroundColor = [UIColor colorWithHexString:LINECOLOR]; [self.backView addSubview:belowLine]; UIView *shortLine1 = [[UIView alloc]initWithFrame:CGRectMake(CGRectGetMaxX(self.attentionBtn.frame), 24, 1, 18)]; shortLine1.backgroundColor = [UIColor colorWithHexString:LINECOLOR]; [self.backView addSubview:shortLine1]; [self.backView addSubview:self.menuRubberView]; } - (void)addPageView { self.viewControllers = [NSMutableArray arrayWithObjects:@"myAttentionController",@"myCreateController", nil]; [self.viewControllers enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { if (nil == self.pageViewControllers) { self.pageViewControllers = [NSMutableArray array]; } if ([obj isKindOfClass:[UIViewController class]]) { [self.pageViewControllers addObject:obj]; [self addChildViewController:obj]; } else { [self.pageViewControllers addObject:[NSNull null]]; } }]; [self.backView addSubview:self.pageView]; self.attentionBtn.selected = YES; [self.pageView reloadData]; } #pragma mark - button handler - (void)closeEvent:(UIButton*)btn { [self dismissControllerAnimated:YES completion:nil]; } -(void) attentionEvent:(UIButton *)btn{ self.pageView.currentPageIndex = 0; [self.attentionBtn setTitleColor:[UIColor colorWithHexString:BLUECOLOR] forState:UIControlStateSelected]; [self.myCreateBtn setTitleColor:[UIColor colorWithHexString:TextGray] forState:UIControlStateNormal]; } -(void) createEvent:(UIButton *)btn{ self.pageView.currentPageIndex = 1; [self.attentionBtn setTitleColor:[UIColor colorWithHexString:TextGray] forState:UIControlStateNormal]; [self.attentionBtn setTitleColor:[UIColor colorWithHexString:TextGray] forState:UIControlStateSelected]; [self.myCreateBtn setTitleColor:[UIColor colorWithHexString:BLUECOLOR] forState:UIControlStateNormal]; } #pragma mark - pageView delegate - (NSInteger)numberOfPagesInPagingView:(ATPagingView *)pagingView { return self.viewControllers.count; } - (UIView *)viewForPageInPagingView:(ATPagingView *)pagingView atIndex:(NSInteger)index { if (self.pageViewControllers[index] == [NSNull null]) { NSString *className = self.viewControllers[index]; Class class = NSClassFromString(className); UIViewController *vc = [[class alloc] init]; if ([vc isKindOfClass:[myAttentionController class]]) { ((myAttentionController*)vc).editDelegate = self; }else if ([vc isKindOfClass:[myCreateController class]]){ ((myCreateController*)vc).delegate = self; } self.pageViewControllers[index] = vc; [self addChildViewController:vc]; } return ((UIViewController*)self.pageViewControllers[index]).view; } - (void)currentPageDidChangeInPagingView:(ATPagingView *)pageView { [self setViewAndEditBtnStatusWithIndex]; } - (void)setViewAndEditBtnStatusWithIndex{ if(self.pageView.currentPageIndex == 1){ [self.attentionBtn setTitleColor:[UIColor colorWithHexString:TextGray] forState:UIControlStateSelected]; [self.myCreateBtn setTitleColor:[UIColor colorWithHexString:BLUECOLOR] forState:UIControlStateNormal]; [self.myCreateBtn setTitleColor:[UIColor colorWithHexString:BLUECOLOR] forState:UIControlStateSelected]; // myCreateController *vc = self.pageViewControllers[1]; [self.editBtn removeTarget:self action:@selector(attentionSelector:) forControlEvents:UIControlEventTouchUpInside]; // [self.editBtn setTitle:vc.topic forState:UIControlStateNormal]; [self.editBtn addTarget:self action:@selector(createSelector:) forControlEvents:UIControlEventTouchUpInside]; self.editBtn.hidden = NO; self.editBtn.selected = NO; [self.editBtn setTitle:@"创建" forState:UIControlStateNormal]; }else{ [self.myCreateBtn setTitleColor:[UIColor colorWithHexString:TextGray] forState:UIControlStateNormal]; [self.myCreateBtn setTitleColor:[UIColor colorWithHexString:TextGray] forState:UIControlStateSelected]; [self.attentionBtn setTitleColor:[UIColor colorWithHexString:BLUECOLOR] forState:UIControlStateSelected]; [self.editBtn setTitle:@"编辑" forState:UIControlStateNormal]; myAttentionController *vc = self.pageViewControllers[0]; [self.editBtn removeTarget:self action:@selector(createSelector:) forControlEvents:UIControlEventTouchUpInside]; if (vc.tableView.isEditing) { self.editBtn.selected = YES; }else self.editBtn.selected = NO; if (vc.noDataBack.hidden) { self.editBtn.hidden = NO; }else self.editBtn.hidden = YES; // [self.editBtn setTitle:vc.topic forState:UIControlStateNormal]; [self.editBtn addTarget:self action:@selector(attentionSelector:) forControlEvents:UIControlEventTouchUpInside]; } } - (void)pagesDidChangeInPagingView:(ATPagingView *)pageView { } - (void)pagingViewWillBeginMoving:(ATPagingView *)pageView { } - (void)pagingViewdDidScroll:(UIScrollView *)scrollerView { CGFloat width = (gambitCenterPopSize.width-30); CGFloat scrollOffsetX = scrollerView.contentOffset.x; CGRect rect = self.menuRubberView.frame; CGFloat scale = scrollOffsetX/(gambitCenterPopSize.width*2); CGFloat offset = width*scale; rect.origin.x = 15+offset; self.menuRubberView.frame = rect; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end