|
//
// 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 ()<ATPagingViewDelegate,myFocusDelegate,myAsksDelegate> {
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
|