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
//
// 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 {
for (id object in self.view.subviews) {
if ([object isKindOfClass:[UIButton class]]) {
UIButton *button = (UIButton *)object;
button.selected = NO;
}
}
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