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;
}