第一个:改变全局的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];
这个没有亲测