第一個:改變全局的tabBar和navBar中的渲染顏色
:在appdelegate中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
//實例化一個控制器
SXPTabbarController *tb = [[SXPTabbarController alloc]init];
self.window.rootViewController = tb;
//設置主窗口
[self.window makeKeyAndVisible];
//修改nav和tabbar的顏色
[[UINavigationBar appearance] setTintColor:[UIColor orangeColor]];
[[UITabBar appearance]setTintColor:[UIColor orangeColor]];
return YES;
}
後面兩句就可以修改加載後的Bar的顏色
//修改nav和tabbar的顏色
[[UINavigationBar appearance] setTintColor:[UIColor orangeColor]];
[[UITabBar appearance]setTintColor:[UIColor orangeColor]];
還有一種方法,就是繼承了,寫一個navBar父類,修改其顏色.其他的導航控制器繼承這個基類就好
第二個自定義TabBar
這是一種
/*
// 1.創建自己的tabbar
YCTabBar *tabBar = [[YCTabBar alloc]init];
// 2.用自己的tabBar替換系統的
//self.tabBar = tabBar;
// KVC, KVC的實現原理基於運行時, 它可以在運行時動態的修改屬性
[self setValue:tabBar forKeyPath:@"tabBar"];
*/
第二種 // 1.創建自定義CZTabBar2
YCTabBar2 *tabBar = [[YCTabBar2 alloc]init];
//設置代理
tabBar.delegate = self;
// 2.設置CZTabBar2的frame
tabBar.frame = self.tabBar.frame;
// 3.添加CZTabBar2到父控件
[self.view addSubview:tabBar];
self.customTabBar = tabBar;
// 4.移除系統自帶的tabbar
[self.tabBar removeFromSuperview];
這個沒有親測