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