使用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];

這個沒有親測


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