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; // 生效!
-
高度自定義!
你可以自由設置下列屬性,也可以選擇去代碼中直接改!
-
tabBar 標題字體顏色(普通、高亮等)
-
tabBar 標題字體
-
tabBar 圖片所占比例
-
tabBar 小紅點 frame
-
tabBar 小紅點 字體
-
...
-
-
如果覺得還不錯,請點擊右上角 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; }