1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
//
// CardDetailsViewController.m
// Lighting
//
// Created by 曹云霄 on 2016/10/19.
// Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//
#import "CardDetailsViewController.h"
#import "CardDontUseViewController.h"
#import "CardBeenUseViewController.h"
@interface CardDetailsViewController ()
/**
* 当前的控制器
*/
@property (nonatomic,strong) UIViewController *currentVC;
/**
指示线约束
*/
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *instructionViewConstraint;
@end
@implementation CardDetailsViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self addChildViewController];
}
#pragma mark - 添加卡劵详情vc
- (void)addChildViewController
{
/// 未领取
CardDontUseViewController *dontUseVc = [[[self class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"CardDontUseViewController"];
[self addChildViewController:dontUseVc];
/// 已领取
CardBeenUseViewController *beenUseVc = [[[self class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"CardBeenUseViewController"];
// 审批中
CardBeenUseViewController *examineUseVc = [[[self class] getMainStoryboardClass]instantiateViewControllerWithIdentifier:@"CardBeenUseViewController"];
examineUseVc.cardState = CHECK;
[self addChildViewController:examineUseVc];
beenUseVc.cardState = ACTIVED;
[self addChildViewController:beenUseVc];
/// 已使用
CardBeenUseViewController *usedVc = [[[self class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"CardBeenUseViewController"];
usedVc.cardState = USED;
[self addChildViewController:usedVc];
[self.cardBackgroundView addSubview:dontUseVc.view];
self.currentVC = dontUseVc;
}
#pragma mark - 布局
- (void)viewDidLayoutSubviews
{
CardDontUseViewController *dontUseVc = self.childViewControllers[0];
dontUseVc.view.frame = CGRectMake(0, 0, self.cardBackgroundView.mj_w, self.cardBackgroundView.mj_h);
CardBeenUseViewController *beenUseVc = self.childViewControllers[1];
beenUseVc.view.frame = CGRectMake(0, 0, self.cardBackgroundView.mj_w, self.cardBackgroundView.mj_h);
CardBeenUseViewController *examineUseVc = self.childViewControllers[2];
examineUseVc.view.frame = CGRectMake(0, 0, self.cardBackgroundView.mj_w, self.cardBackgroundView.mj_h);
CardBeenUseViewController *usedVc = self.childViewControllers[3];
usedVc.view.frame = CGRectMake(0, 0, self.cardBackgroundView.mj_w, self.cardBackgroundView.mj_h);
}
#pragma mark - 切换已使用卡劵、未使用卡劵
- (void)switchPaymentsVCAndWithdrawalVC:(UIViewController *)newViewController
{
[self transitionFromViewController:self.currentVC toViewController:newViewController duration:0.5 options:UIViewAnimationOptionTransitionNone animations:nil completion:^(BOOL finished) {
if (finished) {
[self.cardBackgroundView addSubview:newViewController.view];
self.currentVC = newViewController;
}
}];
}
#pragma mark - 切换ContentController
- (IBAction)paymentsButtonAndWithdrawalButtonClick:(UIButton *)sender {
switch (sender.tag) {
case 100:
{
self.beenUseButton.selected = NO;
self.isUsedButton.selected = NO;
self.examinationButton.selected = NO;
}
break;
case 101:
{
self.dontUseButton.selected = NO;
self.isUsedButton.selected = NO;
self.beenUseButton.selected = NO;
}
break;
case 102:
{
self.dontUseButton.selected = NO;
self.isUsedButton.selected = NO;
self.examinationButton.selected = NO;
}
break;
case 103:
{
self.dontUseButton.selected = NO;
self.beenUseButton.selected = NO;
self.examinationButton.selected = NO;
}
break;
default:
break;
}
sender.selected = YES;
[self setupInstructionsViewOrigin:sender];
[self switchPaymentsVCAndWithdrawalVC:self.childViewControllers[sender.tag-100]];
}
#pragma mark - 设置指示线的位置
- (void)setupInstructionsViewOrigin:(UIButton *)sender
{
self.instructionViewConstraint.constant = sender.x+16;
[UIView animateWithDuration:0.5 delay:0.1f usingSpringWithDamping:0.5f initialSpringVelocity:0.5f options:UIViewAnimationOptionCurveEaseInOut animations:^{
[self.view layoutIfNeeded];
} completion:nil];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end