在項目一開始搭建TabBarControler和NavigationController的時候藐吮,很多人習慣自定義TabBar。
其實系統(tǒng)的自帶的設(shè)置TabBarControler、對應(yīng)的子控制器币叹、對應(yīng)的Tabbar上的image和title更簡單矢洲,但有些人出現(xiàn)了圖片莫名變得很大或Tabbar上的title跟控制器的Title沖突的問題绣檬,下面的解決辦法僅作參考舅巷,如有問題,請私信我河咽。
#import "MainTabBarController.h"
#import "BaseNavigationController.h"
#import "HomeViewController.h"
#import "FindViewController.h"
#import "AccountViewController.h"
@interface MainTabBarController ()<UITabBarDelegate>
@end
@implementation MainTabBarController
- (void)viewDidLoad {
[super viewDidLoad];
[[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10]} forState:UIControlStateNormal];
UIColor *titleHighlightedColor = [UIColor colorWithHexString:MainBlueColor];
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
titleHighlightedColor, NSForegroundColorAttributeName,
nil] forState:UIControlStateSelected];
self.tabBar.barTintColor = [UIColor colorWithHexString:MainWhiteColor];
self.tabBar.translucent = NO;
[self navigationControllers];
}
tabBarItem中的圖片變得特別大怎么解決?
在賦圖片的時候使用UIImageRenderingModeAlwaysOriginal模式
findNaviVC.tabBarItem.selectedImage=[select2 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
- (void)navigationControllers{
HomeViewController *homeVC = [[HomeViewController alloc] init];
BaseNavigationController *homeNaviVC = [[BaseNavigationController alloc] initWithRootViewController:homeVC];
homeNaviVC.tabBarItem.title = @"首頁";
homeNaviVC.tabBarItem.image = [UIImage imageNamed:@"1_1"];
UIImage *select = [UIImage imageNamed:@"1_2"];
homeNaviVC.tabBarItem.selectedImage = [select imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
FindViewController *findVC = [[FindViewController alloc] init];
BaseNavigationController *findNaviVC = [[BaseNavigationController alloc] initWithRootViewController: findVC];
findNaviVC.tabBarItem.title = @"發(fā)現(xiàn)";
findNaviVC.tabBarItem.image = [UIImage imageNamed:@"1_3"];
UIImage *select2 = [UIImage imageNamed:@"1_4"];
findNaviVC.tabBarItem.selectedImage = [select2 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
AccountViewController *accountVC = [[AccountViewController alloc] init];
BaseNavigationController *accountNaviVC = [[BaseNavigationController alloc] initWithRootViewController:accountVC];
accountNaviVC.tabBarItem.title = @"我的賬戶";
accountNaviVC.tabBarItem.image = [UIImage imageNamed:@"1_5"];
UIImage *select3 = [UIImage imageNamed:@"1_6"];
accountNaviVC.tabBarItem.selectedImage = [select3 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.viewControllers = @[homeNaviVC,findlNaviVC,accountNaviVC];
}
TabBar上的title和控制器導航欄的title不一致怎么解決赋元?
在該tabbarItem對應(yīng)的導航控制器的RootVC的viewDidLoad中
使用self.navigationItem.title = @"導航欄首頁";
不要直接self.title = @"導航欄首頁";(會沖突)
更多源碼請訪問github:https://github.com/zhangjiahuan8888