爱程序网

设置tabBar的图片/高度/title颜色

来源: 阅读:

实现了一下内容:

1.设置tabBarItem选中及非选中时的图片,图片充满item;

2.调整了 tabBar 高度;

3.改变了title颜色及位置.

 

------------代码如下:

 

---TabBarC.m---

#import "TabBarC.h"

#import "ViewController.h"

#import "SecViewController.h"

 

#define CustomTabBarHeight 60//不需要改变高度就换成self.tabBar.frame.size.height

#define CustomTabBarWidth self.tabBar.frame.size.width

 

@interface TabBarC ()

 

@end

 

@implementation TabBarC

 

- (void)viewDidLoad {

    [super viewDidLoad];

    

    //初始化子控制器

    ViewController *onevc = [[ViewController alloc] init];

    SecViewController *twovc = [[SecViewController alloc] init];

    

    //将VC, 未选中图,选中图 放到数组里

    NSArray *onevcArr = @[onevc,@"one_icon",@"sel_one_icon"];

    NSArray *twovcArr = @[twovc,@"two_icon",@"sel_two_icon"];

    NSArray *vcArr = @[onevcArr,twovcArr];

    

    [self addToTabBar:vcArr];

}

 

//添加子控制器到 tabBar

- (void)addToTabBar:(NSArray *)array{

    

    for (NSInteger i=0; i<array.count; i++) {

        

        NSArray *everyVCArr = array[i];

        

        UIViewController *everyVC = everyVCArr[0];

        

        everyVC.title = @"vc标题";

        

        everyVC.view.backgroundColor = [UIColor whiteColor];

        

        //将图片插入的位置向下移动5.5 ; top和 bottom不为相反数点击时图片会变

        everyVC.tabBarItem.imageInsets = UIEdgeInsetsMake(5.5, 0, -5.5, 0);

        

        //tabBarItem的宽

        NSInteger itemWidth = CustomTabBarWidth/array.count;

        

#pragma -------注意:(不设置tabBarItem.image的话,其他tabBarItem的设置都无效)

        

#pragma -------这里没有准备不同尺寸的合适的图片,为了展示效果直接将图片缩放到合适尺寸,缩放步骤可省略

        

        //--------设置非选中时的图片,图设置为原始状态

        everyVC.tabBarItem.image = [[self editImage:everyVCArr[1] toSize:CGSizeMake(itemWidth, CustomTabBarHeight)]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

        

        //设置选中时的图片,图设置为原始状态

        everyVC.tabBarItem.selectedImage = [[self editImage:everyVCArr[2] toSize:CGSizeMake(itemWidth, CustomTabBarHeight)]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

        

        //调整 tabBarItem 标题位置

        [everyVC.tabBarItem setTitlePositionAdjustment:UIOffsetMake(0, 5)];

        

        //设置字体颜色

        NSMutableDictionary *textAttribute = [NSMutableDictionary dictionary];

        textAttribute[NSForegroundColorAttributeName] = [UIColor blackColor];

        [everyVC.tabBarItem setTitleTextAttributes:textAttribute forState:UIControlStateNormal];

        

        //设置字体颜色

        [everyVC.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]} forState:UIControlStateSelected];

        

        everyVC.tabBarItem.title = @"啦啦啦啦啦啦";

        

        UINavigationController *nvc = [[UINavigationController alloc]initWithRootViewController:everyVC];

        

        [self addChildViewController:nvc];

    }

    

    NSLog(@"

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助