初始化UITabBarController時油湖,對item和VC不同的設置與執(zhí)行順序,導致UITabBarItem樣式不同亿鲜,今天來看幾種樣式痢站,歡迎大家填補磷箕。
tabBar樣式默認在iPhone為上下結構,在iPad則為左右結構
UITabBarController的初始化:
/**
UITabBarController的懶加載
@return 構造的UITabBarController
*/
- (UITabBarController *)tabBarController {
if (!_tabBarController) {
_tabBarController = [[UITabBarController alloc] init];
_tabBarController.delegate = self;
NSArray *dataArray = @[@{@"IOSClASSNAME":@"PadHomeVC",@"TABBARIMAGE":@"tab_home",@"TABBARTITLE":@"Home",},@{@"IOSClASSNAME":@"WorkStationVC",@"TABBARIMAGE":@"tab_workStationHL",@"TABBARTITLE":@"WorkStation"},@{@"IOSClASSNAME":@"MessageCenterVC",@"TABBARIMAGE":@"tab_news",@"TABBARTITLE":@"Message"},@{@"IOSClASSNAME":@"MineVC",@"TABBARIMAGE":@"tab_mine",@"TABBARTITLE":@"Mine"},
];
NSMutableArray *viewControllers = [NSMutableArray array];
[dataArray enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
UIViewController *vc;
NSString *className = kChangeEmptyStr(obj[@"IOSClASSNAME"]);
vc = [[[NSClassFromString(className) class] alloc] init];
if (!vc) {
vc = [[UIViewController alloc]init];
}
//設置VC標題
[vc setTitle:obj[@"TABBARTITLE"]];
NSString *imageStr = obj[@"TABBARIMAGE"];
vc.tabBarItem.image = [UIImage imageNamed:imageStr];
vc.view.backgroundColor = [UIColor whiteColor];
//設置item標題
vc.tabBarItem.title = @"";
UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:vc];
[viewControllers addObject:navigation];
}];
_tabBarController.viewControllers = viewControllers;
[_tabBarController.tabBar setTintColor:UIColorFromRGB(0x3C89ED)];
}
return _tabBarController;
}
兩個都設置阵难,但是將item設置為@""岳枷,得到的樣式是這樣的:
item為空.png
兩個都設置,item的title設置在VC后面呜叫,設置為@"News"空繁,得到這樣的:
設置為News.png
兩個都設置,item的title設置在VC前面朱庆,設置為@"News"盛泡,得到這樣的:
item先設置.png
只設置VC的標題,不設置item的:
item不設置.png
只設置item的標題娱颊,不設置VC的:
不設置VC.png
對比顯示結果傲诵,可得以下結論:
1.item與VC同時設置時,VC的title如果后執(zhí)行箱硕,會將item的title修改為VC的title拴竹;但是如果item的title后執(zhí)行,不會影響VC的title設置颅痊。
2.只設置VC時,item會設置為VC的標題局待;但是只設置item則VC標題為空斑响。
3.綜合以上,VC的設置會影響item钳榨,但是item對VC標題卻無影響舰罚。