美文网首页
UITabBarItem与VC标题的样式赏析

UITabBarItem与VC标题的样式赏析

作者: 我思__故我在 | 来源:发表于2018-11-19 10:27 被阅读13次

    初始化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设置为@"",得到的样式是这样的:


    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如果后执行,会将item的title修改为VC的title;但是如果item的title后执行,不会影响VC的title设置。
    2.只设置VC时,item会设置为VC的标题;但是只设置item则VC标题为空。
    3.综合以上,VC的设置会影响item,但是item对VC标题却无影响。

    相关文章

      网友评论

          本文标题:UITabBarItem与VC标题的样式赏析

          本文链接:https://www.haomeiwen.com/subject/pozwfqtx.html