Commit 2c58cbb641ca1f947cae1df9f39cfece90e406d3

Authored by zhangxiaowen
1 parent 6a71c966

no message

CNLiveScioLive/Pages/Base/CNLiveENTabBarController.m
@@ -9,7 +9,9 @@ @@ -9,7 +9,9 @@
9 #import "CNLiveENTabBarController.h" 9 #import "CNLiveENTabBarController.h"
10 #import "XWTabBarModel.h" 10 #import "XWTabBarModel.h"
11 11
12 -@interface CNLiveENTabBarController () 12 +@interface CNLiveENTabBarController ()<UITabBarDelegate>{
  13 + NSInteger _indexFlag;
  14 +}
13 @property (nonatomic, copy) NSMutableArray *controllers; 15 @property (nonatomic, copy) NSMutableArray *controllers;
14 16
15 @end 17 @end
@@ -19,7 +21,8 @@ @@ -19,7 +21,8 @@
19 - (void)viewDidLoad { 21 - (void)viewDidLoad {
20 [super viewDidLoad]; 22 [super viewDidLoad];
21 // Do any additional setup after loading the view. 23 // Do any additional setup after loading the view.
22 - 24 + _indexFlag = 0;
  25 +
23 [self initItemsAndViewContorllers]; 26 [self initItemsAndViewContorllers];
24 // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeLanguageVersion:) name:@"changeLanguageVersion" object:nil]; 27 // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeLanguageVersion:) name:@"changeLanguageVersion" object:nil];
25 28
@@ -127,5 +130,31 @@ @@ -127,5 +130,31 @@
127 return [self.selectedViewController supportedInterfaceOrientations]; 130 return [self.selectedViewController supportedInterfaceOrientations];
128 131
129 } 132 }
130 - 133 +- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
  134 + NSInteger index = [self.tabBar.items indexOfObject:item];
  135 + if (_indexFlag != index) {
  136 + [self animationWithIndex:index];
  137 + }
  138 +}
  139 +// 动画
  140 +- (void)animationWithIndex:(NSInteger) index {
  141 + NSMutableArray * tabbarbuttonArray = [NSMutableArray array];
  142 + for (UIView *tabBarButton in self.tabBar.subviews) {
  143 + if ([tabBarButton isKindOfClass:NSClassFromString(@"UITabBarButton")]) {
  144 + [tabbarbuttonArray addObject:tabBarButton];
  145 + }
  146 + }
  147 + CABasicAnimation*pulse = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
  148 + pulse.timingFunction= [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
  149 + pulse.duration = 0.15;
  150 + pulse.repeatCount= 1;
  151 + pulse.autoreverses= YES;
  152 + pulse.fromValue= [NSNumber numberWithFloat:0.7];
  153 + pulse.toValue= [NSNumber numberWithFloat:1.3];
  154 + [[tabbarbuttonArray[index] layer]
  155 + addAnimation:pulse forKey:nil];
  156 +
  157 + _indexFlag = index;
  158 +
  159 +}
131 @end 160 @end
CNLiveScioLive/Pages/Base/CNLiveTabBarController.m
@@ -9,17 +9,19 @@ @@ -9,17 +9,19 @@
9 #import "CNLiveTabBarController.h" 9 #import "CNLiveTabBarController.h"
10 #import "XWTabBarModel.h" 10 #import "XWTabBarModel.h"
11 11
12 -@interface CNLiveTabBarController () 12 +@interface CNLiveTabBarController ()<UITabBarDelegate>{
  13 + NSInteger _indexFlag;
  14 +}
13 @property (nonatomic, copy) NSMutableArray *controllers; 15 @property (nonatomic, copy) NSMutableArray *controllers;
14 16
15 @end 17 @end
16 18
17 @implementation CNLiveTabBarController 19 @implementation CNLiveTabBarController
18 - 20 +#pragma mark - life cycle
19 - (void)viewDidLoad { 21 - (void)viewDidLoad {
20 [super viewDidLoad]; 22 [super viewDidLoad];
21 // Do any additional setup after loading the view. 23 // Do any additional setup after loading the view.
22 - 24 + _indexFlag = 0;
23 [self initItemsAndViewContorllers]; 25 [self initItemsAndViewContorllers];
24 // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeLanguageVersion:) name:@"changeLanguageVersion" object:nil]; 26 // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeLanguageVersion:) name:@"changeLanguageVersion" object:nil];
25 27
@@ -34,6 +36,7 @@ @@ -34,6 +36,7 @@
34 // } 36 // }
35 // 37 //
36 //} 38 //}
  39 +#pragma mark - private methods
37 - (void)initItemsAndViewContorllers { 40 - (void)initItemsAndViewContorllers {
38 41
39 NSMutableArray *viewControllerArr = [NSMutableArray array]; 42 NSMutableArray *viewControllerArr = [NSMutableArray array];
@@ -71,7 +74,7 @@ @@ -71,7 +74,7 @@
71 } 74 }
72 self.viewControllers = viewControllerArr; 75 self.viewControllers = viewControllerArr;
73 } 76 }
74 -#pragma mark --懒加载 77 +#pragma mark - getters and setters
75 - (NSMutableArray *)controllers { 78 - (NSMutableArray *)controllers {
76 if (!_controllers) { 79 if (!_controllers) {
77 _controllers = [NSMutableArray array]; 80 _controllers = [NSMutableArray array];
@@ -138,4 +141,32 @@ @@ -138,4 +141,32 @@
138 141
139 } 142 }
140 143
  144 +#pragma mark - UITabBarDelegate
  145 +- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
  146 + NSInteger index = [self.tabBar.items indexOfObject:item];
  147 + if (_indexFlag != index) {
  148 + [self animationWithIndex:index];
  149 + }
  150 +}
  151 +// 动画
  152 +- (void)animationWithIndex:(NSInteger) index {
  153 + NSMutableArray * tabbarbuttonArray = [NSMutableArray array];
  154 + for (UIView *tabBarButton in self.tabBar.subviews) {
  155 + if ([tabBarButton isKindOfClass:NSClassFromString(@"UITabBarButton")]) {
  156 + [tabbarbuttonArray addObject:tabBarButton];
  157 + }
  158 + }
  159 + CABasicAnimation*pulse = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
  160 + pulse.timingFunction= [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
  161 + pulse.duration = 0.20;
  162 + pulse.repeatCount= 1;
  163 + pulse.autoreverses= YES;
  164 + pulse.fromValue= [NSNumber numberWithFloat:0.9];
  165 + pulse.toValue= [NSNumber numberWithFloat:1.1];
  166 + [[tabbarbuttonArray[index] layer]
  167 + addAnimation:pulse forKey:nil];
  168 +
  169 + _indexFlag = index;
  170 +
  171 +}
141 @end 172 @end
CNLiveScioLive/Pages/Live/View/CNLiveHeaderView.m
@@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
14 @property (nonatomic, strong) UILabel *titleLabel; 14 @property (nonatomic, strong) UILabel *titleLabel;
15 @property (nonatomic, strong) UILabel *stateLabel;//状态 15 @property (nonatomic, strong) UILabel *stateLabel;//状态
16 @property (nonatomic, strong) UIButton *playImage;//播放 16 @property (nonatomic, strong) UIButton *playImage;//播放
17 -@property (nonatomic, strong) UILabel *timeLabel;//时间 17 +//@property (nonatomic, strong) UILabel *timeLabel;//时间
18 18
19 @end 19 @end
20 20
@@ -56,12 +56,12 @@ @@ -56,12 +56,12 @@
56 _stateLabel.layer.cornerRadius = 2; 56 _stateLabel.layer.cornerRadius = 2;
57 [self addSubview:_stateLabel]; 57 [self addSubview:_stateLabel];
58 58
59 - _timeLabel = [[UILabel alloc] init];  
60 - _timeLabel.numberOfLines = 1;  
61 - _timeLabel.lineBreakMode = NSLineBreakByTruncatingTail;  
62 - _timeLabel.textColor = [UIColor lightGrayColor];  
63 - _timeLabel.font = [UIFont systemFontOfSize:12];  
64 - [self addSubview:_timeLabel]; 59 +// _timeLabel = [[UILabel alloc] init];
  60 +// _timeLabel.numberOfLines = 1;
  61 +// _timeLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  62 +// _timeLabel.textColor = [UIColor lightGrayColor];
  63 +// _timeLabel.font = [UIFont systemFontOfSize:12];
  64 +// [self addSubview:_timeLabel];
65 65
66 } 66 }
67 return self; 67 return self;
@@ -70,7 +70,7 @@ @@ -70,7 +70,7 @@
70 - (void)setModel:(CNLiveModel *)model{ 70 - (void)setModel:(CNLiveModel *)model{
71 _model = model; 71 _model = model;
72 _titleLabel.text = @"最新发布会"; 72 _titleLabel.text = @"最新发布会";
73 - _timeLabel.text = model.liveStartDateTime; 73 +// _timeLabel.text = model.liveStartDateTime;
74 [_backgroundImage sd_setImageWithURL:[NSURL URLWithString:model.poster] placeholderImage:[UIImage imageNamed:@"cnlive_placeholder"]]; 74 [_backgroundImage sd_setImageWithURL:[NSURL URLWithString:model.poster] placeholderImage:[UIImage imageNamed:@"cnlive_placeholder"]];
75 switch ([model.status intValue]) { 75 switch ([model.status intValue]) {
76 case 0: { 76 case 0: {
@@ -160,18 +160,25 @@ @@ -160,18 +160,25 @@
160 }]; 160 }];
161 161
162 [_stateLabel mas_makeConstraints:^(MASConstraintMaker *make) { 162 [_stateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
163 - make.left.equalTo(self->_titleLabel.mas_right).with.offset(5);  
164 - make.top.equalTo(self->_backgroundImage.mas_top).with.offset(10);  
165 - make.height.offset(18);  
166 -  
167 - }];  
168 -  
169 - [_timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {  
170 - make.right.equalTo(self->_backgroundImage.mas_right).with.offset(-10); 163 + make.right.equalTo(self.mas_right).with.offset(-10);
171 make.top.equalTo(self->_backgroundImage.mas_top).with.offset(10); 164 make.top.equalTo(self->_backgroundImage.mas_top).with.offset(10);
172 make.height.offset(18); 165 make.height.offset(18);
173 166
174 }]; 167 }];
  168 +
  169 +// [_stateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  170 +// make.left.equalTo(self->_titleLabel.mas_right).with.offset(5);
  171 +// make.top.equalTo(self->_backgroundImage.mas_top).with.offset(10);
  172 +// make.height.offset(18);
  173 +//
  174 +// }];
  175 +
  176 +// [_timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  177 +// make.right.equalTo(self->_backgroundImage.mas_right).with.offset(-10);
  178 +// make.top.equalTo(self->_backgroundImage.mas_top).with.offset(10);
  179 +// make.height.offset(18);
  180 +//
  181 +// }];
175 } 182 }
176 - (void)playImageClicked:(UIButton *)btn{ 183 - (void)playImageClicked:(UIButton *)btn{
177 self.block?self.block():@""; 184 self.block?self.block():@"";