// // myAskCenterController.m // ThePaperHD // // Created by scar1900 on 15/3/29. // Copyright (c) 2015年 scar1900. All rights reserved. // #import "myAskCenterController.h" #import "ATPagingView.h" #import "RubberBandView.h" #import "myFocusController.h" @interface myAskCenterController () { NSInteger lastIndex; } @property(nonatomic, strong)UIButton *closeBtn; @property(nonatomic, strong)UIButton *editBtn; @property(nonatomic, strong)UILabel *titleLabel; @property(nonatomic, strong)UIView *backView; @property(nonatomic, strong)UIButton *askBtn; @property(nonatomic, strong)UIButton *answerBtn; @property(nonatomic, strong)UIButton *focusBtn; @property(nonatomic, strong)ATPagingView *pageView; @property(nonatomic, strong)NSMutableArray *pageViewControllers; @property(nonatomic, strong)NSMutableArray *viewControllers; @property(nonatomic, strong)UIView *menuRubberView; @end @implementation myAskCenterController @synthesize viewControllers,pageViewControllers; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.view.backgroundColor = [UIColor clearColor]; self.view.frame = CGRectMake(0, 0, myAskCenterPopSize.width, myAskCenterPopSize.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(myAskCenterPopSize.width-50, 0, 50, 80); [self.editBtn setImageEdgeInsets:UIEdgeInsetsMake(15, 0, 15, 0)]; [self.view addSubview:self.backView]; [self addTabButtns]; [self addPageView]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.navigationController.navigationBarHidden = YES; [self enablePopBackTap]; } - (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 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; } return _editBtn; } - (UIView*)backView { if (!_backView) { _backView = [[UIView alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(self.titleLabel.frame), myAskCenterPopSize.width, myAskCenterPopSize.height-80)]; _backView.backgroundColor = [UIColor colorWithHexString:BackGroundColor]; } return _backView; } - (UIButton*)askBtn { if (!_askBtn) { _askBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_askBtn setTitle:@"提问" forState:UIControlStateNormal]; _askBtn.titleLabel.font = appFont(20, NO); [_askBtn setTitleColor:[UIColor colorWithHexString:TextBlack] forState:UIControlStateNormal]; _askBtn.frame = CGRectMake(15, 0, (myAskCenterPopSize.width-30)/3, 114/2); [_askBtn addTarget:self action:@selector(askEvent:) forControlEvents:UIControlEventTouchUpInside]; } return _askBtn; } - (UIButton*)answerBtn { if (!_answerBtn) { _answerBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_answerBtn setTitle:@"回答" forState:UIControlStateNormal]; _answerBtn.titleLabel.font = appFont(20, NO); [_answerBtn setTitleColor:[UIColor colorWithHexString:TextBlack] forState:UIControlStateNormal]; _answerBtn.frame = CGRectMake(CGRectGetMaxX(self.askBtn.frame),0 , (myAskCenterPopSize.width-30)/3, 114/2); [_answerBtn addTarget:self action:@selector(answerEvent:) forControlEvents:UIControlEventTouchUpInside]; } return _answerBtn; } - (UIButton*)focusBtn { if (!_focusBtn) { _focusBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_focusBtn setTitle:@"关注" forState:UIControlStateNormal]; _focusBtn.titleLabel.font = appFont(20, NO); [_focusBtn setTitleColor:[UIColor colorWithHexString:TextBlack] forState:UIControlStateNormal]; _focusBtn.frame = CGRectMake(CGRectGetMaxX(self.answerBtn.frame),0 , (myAskCenterPopSize.width-30)/3, 114/2); [_focusBtn addTarget:self action:@selector(focusEvent:) forControlEvents:UIControlEventTouchUpInside]; } return _focusBtn; } - (ATPagingView*)pageView { if (!_pageView) { _pageView = [[ATPagingView alloc]initWithFrame:CGRectMake(0, 114/2, myAskCenterPopSize.width, CGRectGetHeight(self.backView.bounds) - 114/2)]; _pageView.gapBetweenPages = 0; _pageView.recyclingEnabled = NO; _pageView.backgroundColor = [UIColor colorWithHexString:BackGroundColor]; _pageView.delegate = self; _pageView.scrollView.bounces = NO; _pageView.scrollView.scrollEnabled = YES; } return _pageView; } - (UIView*)menuRubberView { if (!_menuRubberView) { _menuRubberView = [[UIView alloc]initWithFrame:CGRectMake(15,114/2-3, (myAskCenterPopSize.width-30)/3, 3)]; _menuRubberView.backgroundColor = [UIColor colorWithHexString:BLUECOLOR]; } return _menuRubberView; } #pragma mark - add subviews - (void)addTabButtns { [self.backView addSubview:self.askBtn]; [self.backView addSubview:self.answerBtn]; [self.backView addSubview:self.focusBtn]; UIView *belowLine = [[UIView alloc]initWithFrame:CGRectMake(15, 114/2-1, myAskCenterPopSize.width-30, 1)]; belowLine.backgroundColor = [UIColor colorWithHexString:LINECOLOR]; [self.backView addSubview:belowLine]; UIView *shortLine1 = [[UIView alloc]initWithFrame:CGRectMake(CGRectGetMaxX(self.askBtn.frame), 24, 1, 18)]; shortLine1.backgroundColor = [UIColor colorWithHexString:LINECOLOR]; [self.backView addSubview:shortLine1]; UIView *shortLine2 = [[UIView alloc]initWithFrame:CGRectMake(CGRectGetMaxX(self.answerBtn.frame), 24, 1, 18)]; shortLine2.backgroundColor = [UIColor colorWithHexString:LINECOLOR]; [self.backView addSubview:shortLine2]; [self.backView addSubview:self.menuRubberView]; } - (void)addPageView { self.viewControllers = [NSMutableArray arrayWithObjects:@"myAsksController",@"myAnswersController",@"myFocusController", 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.askBtn.selected = YES; [self.pageView reloadData]; } #pragma mark - button handler - (void)closeEvent:(UIButton*)btn { [self dismissControllerAnimated:YES completion:nil]; } - (void)clickEditBtn:(UIButton*)btn { btn.selected = !btn.selected; myFocusController *vc = self.pageViewControllers[2]; vc.delegate = self; if (btn.selected) { [vc.tableView setEditing:YES animated:YES]; }else { [vc.tableView setEditing:NO animated:YES]; } } - (void)askEvent:(UIButton*)btn { if (btn.selected == YES) { return; } btn.selected = !btn.selected; if (btn.selected) { self.pageView.currentPageIndex = 0; self.answerBtn.selected = NO; self.focusBtn.selected = NO; } } - (void)answerEvent:(UIButton*)btn { if (btn.selected == YES) { return; } btn.selected = !btn.selected; if (btn.selected) { self.pageView.currentPageIndex = 1; self.askBtn.selected = NO; self.focusBtn.selected = NO; } } - (void)focusEvent:(UIButton*)btn { if (btn.selected == YES) { return; } btn.selected = !btn.selected; if (btn.selected) { self.pageView.currentPageIndex = 2; self.answerBtn.selected = NO; self.askBtn.selected = NO; } } - (void)deleteAllFocus { self.editBtn.hidden = YES; } - (void)remoteSuccess { if (self.pageView.currentPageIndex ==2 ) { myFocusController *vc = self.pageViewControllers[2]; if (vc.qaDataSource && vc.qaDataSource.count > 0) { self.editBtn.hidden = NO; }else self.editBtn.hidden = YES; } } #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]; self.pageViewControllers[index] = vc; if(0 == index){ myAsksController *vc = self.pageViewControllers[0]; vc.myAsksDelegate =self; }else if(1 == index){ myAsksController *vc = self.pageViewControllers[1]; vc.myAsksDelegate =self; }else{ myFocusController *vc = self.pageViewControllers[2]; vc.delegate = self; } [self addChildViewController:vc]; } return ((UIViewController*)self.pageViewControllers[index]).view; } - (void)currentPageDidChangeInPagingView:(ATPagingView *)pageView { if (pageView.currentPageIndex == 2) { myFocusController *vc = self.pageViewControllers[2]; vc.delegate = self; if (vc.qaDataSource && vc.qaDataSource.count > 0) { self.editBtn.hidden = NO; } }else{ self.editBtn.hidden = YES; } if (pageView.currentPageIndex == 0) { self.askBtn.selected = YES; self.answerBtn.selected = NO; self.focusBtn.selected = NO; }else if (pageView.currentPageIndex == 1) { self.askBtn.selected = NO; self.answerBtn.selected = YES; self.focusBtn.selected = NO; }if (pageView.currentPageIndex == 2) { self.askBtn.selected = NO; self.answerBtn.selected = NO; self.focusBtn.selected = YES; } } - (void)pagesDidChangeInPagingView:(ATPagingView *)pageView { } - (void)pagingViewWillBeginMoving:(ATPagingView *)pageView { } - (void)pagingViewdDidScroll:(UIScrollView *)scrollerView { CGFloat width = (myAskCenterPopSize.width-30); CGFloat scrollOffsetX = scrollerView.contentOffset.x; CGRect rect = self.menuRubberView.frame; CGFloat scale = scrollOffsetX/(myAskCenterPopSize.width*3); 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. } -(void)gotoUserGambit:(commentObjectVO *)comment{ if ([self.myAsksCenterDelegate respondsToSelector:@selector(gotoGambitInfo:)]) { [self.myAsksCenterDelegate gotoGambitInfo:comment]; } } -(void)asksToAskCenterTopic:(TopicInfoBO *)topic user:(userBO *)user{ if ([self.myAsksCenterDelegate respondsToSelector:@selector(askCenterToHomeTopic:user:)]) { [self.myAsksCenterDelegate askCenterToHomeTopic:topic user:user]; } } -(void)foucsToAskCenterTopic:(TopicInfoBO *)topic user:(userBO *)user{//关注跳转话题详情也 if ([self.myAsksCenterDelegate respondsToSelector:@selector(askCenterToHomeTopic:user:)]) { [self.myAsksCenterDelegate askCenterToHomeTopic:topic user:user]; } } /* #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