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
//
// PaymentWithdrawalMainViewController.m
// Lighting
//
// Created by 曹云霄 on 2016/11/29.
// Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//
#import "PaymentWithdrawalMainViewController.h"
#import "PaymentsViewController.h"
#import "WithdrawalViewController.h"
@interface PaymentWithdrawalMainViewController ()
/**
指示线
*/
@property (weak, nonatomic) IBOutlet UIView *instructionView;
/**
控制器背景
*/
@property (weak, nonatomic) IBOutlet UIView *controllerBackView;
/**
* 当前的控制器
*/
@property (nonatomic,strong) BaseViewController *currentVC;
/**
收支明细
*/
@property (weak, nonatomic) IBOutlet UIButton *paymentDetailsButton;
/**
指示线x约束
*/
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *instructionViewConstraint;
/**
提现进度
*/
@property (weak, nonatomic) IBOutlet UIButton *withdrawalButton;
/**
欧普奖励
*/
@property (weak, nonatomic) IBOutlet UIButton *oppleRewardButton;
@end
@implementation PaymentWithdrawalMainViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self addChildViewController];
}
#pragma mark - 添加收支明细、提现进度控制器
- (void)addChildViewController
{
PaymentsViewController *payments = [[[self class] getMainStoryboardClass]instantiateViewControllerWithIdentifier:@"PaymentsViewController"];
[self addChildViewController:payments];
WithdrawalViewController *withdrawal = [[[self class] getMainStoryboardClass]instantiateViewControllerWithIdentifier:@"WithdrawalViewController"];
[self addChildViewController:withdrawal];
[self.controllerBackView addSubview:payments.view];
self.currentVC = payments;
}
#pragma mark - 布局
- (void)viewDidLayoutSubviews
{
PaymentsViewController *payments = self.childViewControllers[0];
payments.view.frame = CGRectMake(0, 0, self.controllerBackView.width, self.controllerBackView.height);
WithdrawalViewController *withdrawal = self.childViewControllers[1];
withdrawal.view.frame = CGRectMake(0, 0, self.controllerBackView.width, self.controllerBackView.height);
}
#pragma mark - 收支明细、提现进度
- (IBAction)paymentDetailsOrwithdrawalButtonClickAction:(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)switchPaymentsVCAndWithdrawalVC:(BaseViewController *)newViewController
{
[self transitionFromViewController:self.currentVC toViewController:newViewController duration:0.5 options:UIViewAnimationOptionTransitionNone animations:nil completion:^(BOOL finished) {
if (finished) {
[self.controllerBackView addSubview:newViewController.view];
self.currentVC = newViewController;
}
}];
}
#pragma mark - 设置指示线的位置
- (void)setupInstructionsViewOrigin:(UIButton *)sender
{
self.instructionViewConstraint.constant = sender.x+12;
[UIView animateWithDuration:0.5 delay:0.1f usingSpringWithDamping:0.5f initialSpringVelocity:0.5f options:UIViewAnimationOptionCurveEaseInOut animations:^{
[self.view layoutIfNeeded];
} completion:nil];
}
@end