UITabBarItem与VC标题的样式赏析

初始化UITabBarController时,对item和VC不同的设置与执行顺序,导致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设置为@"",得到的样式是这样的:


UITabBarItem与VC标题的样式赏析_第1张图片
item为空.png

两个都设置,item的title设置在VC后面,设置为@"News",得到这样的:


UITabBarItem与VC标题的样式赏析_第2张图片
设置为News.png

两个都设置,item的title设置在VC前面,设置为@"News",得到这样的:


UITabBarItem与VC标题的样式赏析_第3张图片
item先设置.png

只设置VC的标题,不设置item的:


UITabBarItem与VC标题的样式赏析_第4张图片
item不设置.png

只设置item的标题,不设置VC的:


UITabBarItem与VC标题的样式赏析_第5张图片
不设置VC.png

对比显示结果,可得以下结论:
1.item与VC同时设置时,VC的title如果后执行,会将item的title修改为VC的title;但是如果item的title后执行,不会影响VC的title设置。
2.只设置VC时,item会设置为VC的标题;但是只设置item则VC标题为空。
3.综合以上,VC的设置会影响item,但是item对VC标题却无影响。

你可能感兴趣的:(UITabBarItem与VC标题的样式赏析)