美文网首页
设置Storyboard上UITabBarController的

设置Storyboard上UITabBarController的

作者: Minoz_min | 来源:发表于2016-07-12 17:32 被阅读1268次

    storyBoard上直接设置的UITabBarControllerUITabBarItemimagetitle,系统默认是灰色跟蓝色的,但是我们的图片是带边框的,直接在storyBoard上设置图片只能通过设置setTintColor来改变图片的颜色,而边框却没有了,这跟预期效果不一样。可以直接通过代码来设置:

    特别说明一下:

    1.UIImageRenderingModeAutomatic // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。 2.UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tint Color。 3.UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片,忽略图片的颜色信息。

    第一种方法:通过UITabBarItem来设置

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        
        if (!self.window.rootViewController) {
            self.window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"UITabBarController"];
        }
        self.window.rootViewController.view.backgroundColor = [UIColor whiteColor];
        UITabBarController *tabbar = (id)self.window.rootViewController;
        
        UITabBarItem *item1 = tabbar.tabBar.items[0];
        item1.image = [[UIImage imageNamed:@"ic_main_mine"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        item1.selectedImage = [[UIImage imageNamed:@"ic_main_mine_selected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        item1.title = @"我的";
        
        UITabBarItem *item2 = tabbar.tabBar.items[1];
        item2.image = [[UIImage imageNamed:@"ic_main_home"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        item2.selectedImage = [[UIImage imageNamed:@"ic_main_home_selected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        item2.title = @"首页";
        
        [[UITabBar appearance] setTintColor:HSQColorTitleCoffee];
        [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:HSQColorTitleCoffee, NSForegroundColorAttributeName, nil] forState:UIControlStateNormal];
        [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:HSQColorTitleCoffee, NSForegroundColorAttributeName, nil] forState:UIControlStateSelected];
        
        return YES;
    }
    

    第二种方法通过控制器firstVC.tabBarItem来设置:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        
        if (!self.window.rootViewController) {
            self.window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"UITabBarController"];
        }
        self.window.rootViewController.view.backgroundColor = [UIColor whiteColor];
        UITabBarController *tabbar = (id)self.window.rootViewController;
        FirstViewController *firstVC = tabbar.viewControllers[0];
        SecondViewController *secondVC = tabbar.viewControllers[1];
        //这种方法UIImageRenderingModeAlwaysOriginal这个只有selectedImage生效,不建议使用,可以自己试试
        firstVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"首页" image:[UIImage imageNamed:@"ic_main_home"] selectedImage:[[UIImage imageNamed:@"ic_main_home_selected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
        //建议使用
        secondVC.tabBarItem.image = [[UIImage imageNamed:@"ic_main_mine"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        secondVC.tabBarItem.selectedImage = [[UIImage imageNamed:@"ic_main_mine_selected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        secondVC.title = @"我的";
        return YES;
    }
    

    DEMO链接:https://github.com/Minozmin/TabBarSystem.git

    相关文章

      网友评论

          本文标题:设置Storyboard上UITabBarController的

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