CNLiveENTabBarController.m
4.6 KB
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
//
// CNLiveENTabBarController.m
// CNLiveScioLive
//
// Created by CNLive-zxw on 2018/9/27.
// Copyright © 2018年 CNLive. All rights reserved.
//
#import "CNLiveENTabBarController.h"
#import "XWTabBarModel.h"
@interface CNLiveENTabBarController ()
@property (nonatomic, copy) NSMutableArray *controllers;
@end
@implementation CNLiveENTabBarController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self initItemsAndViewContorllers];
// [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeLanguageVersion:) name:@"changeLanguageVersion" object:nil];
}
//- (void)changeLanguageVersion:(NSNotification *)notification {
// for (NSInteger i = 0; i < self.controllers.count; i++) {
// XWTabBarModel *model = self.controllers[i];
// UIViewController *childVC = self.viewControllers[i];
// childVC.tabBarItem.title = IS_CHINESE ? model.title : model.enTitle;
//
// }
//
//}
- (void)initItemsAndViewContorllers {
NSMutableArray *viewControllerArr = [NSMutableArray array];
for (XWTabBarModel *model in self.controllers) {
UIViewController *childVC = [NSClassFromString(model.controller) new];
childVC.tabBarItem.title = IS_CHINESE? model.title : model.enTitle;
[childVC.tabBarItem setTitleTextAttributes:@{
NSFontAttributeName : [UIFont systemFontOfSize:10.0],
NSForegroundColorAttributeName : HEXCOLOR(0x555555)}
forState:UIControlStateNormal];
[childVC.tabBarItem setTitleTextAttributes:@{
NSFontAttributeName : [UIFont systemFontOfSize:10.0],
NSForegroundColorAttributeName : Color_Blue}
forState:UIControlStateSelected];
if ([model.image isEqualToString:model.selectedImage]) {
CGSize imageSize = CGSizeMake(54, 54);
UIImage *norMal = [UIImage imageNamed:model.image];
UIImage *image = [self scaleToSize:norMal size:imageSize];
childVC.tabBarItem.image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
childVC.tabBarItem.selectedImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
childVC.tabBarItem.imageInsets = UIEdgeInsetsMake(-15, 0, 15, 0);
}else{
childVC.tabBarItem.image = [[UIImage imageNamed:model.image] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
childVC.tabBarItem.selectedImage = [[UIImage imageNamed:model.selectedImage] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}
CNLiveBaseNavigationController *naviVC = [[CNLiveBaseNavigationController alloc] initWithRootViewController:childVC];
[viewControllerArr addObject:naviVC];
}
self.viewControllers = viewControllerArr;
}
#pragma mark --懒加载
- (NSMutableArray *)controllers {
if (!_controllers) {
_controllers = [NSMutableArray array];
NSString *path = [[NSBundle mainBundle] pathForResource:@"MainTabbarItemEN" ofType:@"plist"];
NSArray *modelArr = [NSArray arrayWithContentsOfFile:path];
for (NSInteger i = 0; i < modelArr.count; i++) {
XWTabBarModel *homeModel = [XWTabBarModel mj_objectWithKeyValues:modelArr[i]];
[_controllers addObject:homeModel];
}
}
return _controllers;
}
- (void)dealloc {
// [[NSNotificationCenter defaultCenter] removeObserver:self name:@"changeLanguageVersion" object:nil];
}
/**
* 改变图片的大小
*
* @param img 需要改变的图片
* @param newsize 新图片的大小
*
* @return 返回修改后的新图片
*/
- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)newsize{
// 创建一个bitmap的context
// 并把它设置成为当前正在使用的context
UIGraphicsBeginImageContext(newsize);
// 绘制改变大小的图片
[img drawInRect:CGRectMake(0, 0, newsize.width, newsize.height)];
// 从当前context中创建一个改变大小后的图片
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
// 使当前的context出堆栈
UIGraphicsEndImageContext();
// 返回新的改变大小后的图片
return scaledImage;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end