設定tabBar的圖片/高度/title顏色,

來源:互聯網
上載者:User

設定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(@"

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.