使用OC仿写微博项目中使用到的小技巧

第一个:改变全局的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];

这个没有亲测


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章