|
//
// 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 ()<ATPagingViewDelegate,myAttentionTopicDelegate,createDelegate>
@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
|