iOS 高度自定義的選項卡控件:LCTabBarController

jopen 9年前發布 | 20K 次閱讀 iOS開發 移動開發 LCTabBarController

LCTabBarController  是一個可以高度自定義的 tabBarController,你幾乎可以 LCTabBarController 所有的屬性。

特性

  • 高度解耦!

    所有控件全部作為一個單獨的類拆開,項目耦合性超低!-->表示屬于:

    LCTabBarBadge --> LCTabBarItem --> LCTabBar --> LCTabBarController

  • 集成簡單!

    一步集成:把你AppDelegate.m中的UITabBarController單詞替換成LCTabBarController即可完成集成!

    所以,就算你項目已經完成了,你依然可以隨時集成!當然你也可以隨時更換回UITabBarController!(但我有 200% 的把握你不會這么做!)

  • 零污染!

    擁有UITabBarController的全部功能,而沒有任何入侵行為!你要做的永遠只有一步!

    LCTabBarController利用 KVO 監聽系統 tabBarItem,你任何對 tabBarItem 的設置都可以繼續生效!

    如:viewController.tabBarItem.image = [UIImage imageNamed:@"tabbar_home"]; // 生效!

    someVC.hidesBottomBarWhenPushed = YES; // 生效!

  • 高度自定義!

    你可以自由設置下列屬性,也可以選擇去代碼中直接改!

    1. tabBar 標題字體顏色(普通、高亮等)

    2. tabBar 標題字體

    3. tabBar 圖片所占比例

    4. tabBar 小紅點 frame

    5. tabBar 小紅點 字體

    6. ...

  • 如果覺得還不錯,請點擊右上角 star!?? 謝謝!

    我會根據 Issue 持續更新,如果你想隨時了解我的進度,請點擊右上角的 watch!

CocoaPods 安裝

把下面的代碼添加到你的 Podfile 中:

pod 'LCTabBarController' # Podfile

無 CocoaPods 安裝

直接把LCTabBarController文件夾拽入你的項目中,這個文件夾可以在 Demo 中找到。

使用

  • 在你的AppDelegate.m里面:
// 導入頭文件
#import "LCTabBarController.h"

// 1. 如果你項目已經開工,哪怕已經寫完了
// 只需在 application:didFinishLaunchingWithOptions: 方法里面替換一句代碼
UITabBarController *tabBarC = [[UITabBarController alloc] init];
->
LCTabBarController *tabBarC = [[LCTabBarController alloc] init];

// 2. 如果你剛剛開始寫一個新項目
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

    [self.window makeKeyAndVisible];

    // 示例代碼
    HomeVC *vc1 = [[HomeVC alloc] init];
    vc1.view.backgroundColor = [UIColor whiteColor];
    vc1.tabBarItem.badgeValue = @"23";
    vc1.title = @"Home";
    vc1.tabBarItem.image = [UIImage imageNamed:@"tabbar_home"];
    vc1.tabBarItem.selectedImage = [UIImage imageNamed:@"tabbar_home_selected"];

    // vc2 vc3 ...

    UIViewController *vc4 = [[UIViewController alloc] init];
    vc4.view.backgroundColor = [UIColor yellowColor];
    vc4.tabBarItem.badgeValue = @"99+";
    vc4.title = @"Profile";
    vc4.tabBarItem.image = [UIImage imageNamed:@"tabbar_profile"];
    vc4.tabBarItem.selectedImage = [UIImage imageNamed:@"tabbar_profile_selected"];


    UINavigationController *navC1 = [[UINavigationController alloc] initWithRootViewController:vc1];
    UINavigationController *navC2 = [[UINavigationController alloc] initWithRootViewController:vc2];
    UINavigationController *navC3 = [[UINavigationController alloc] initWithRootViewController:vc3];
    UINavigationController *navC4 = [[UINavigationController alloc] initWithRootViewController:vc4];



    /**************************************** Key Code ****************************************/

    LCTabBarController *tabBarC = [[LCTabBarController alloc] init];

    tabBarC.viewControllers = @[navC1, navC2, navC3, navC4];

    self.window.rootViewController = tabBarC;

    /******************************************************************************************/



    return YES;
}

iOS 高度自定義的選項卡控件:LCTabBarController

項目主頁:http://www.baiduhome.net/lib/view/home/1450441381282

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!