我在应用程序中动态添加了一个标签栏,如下所示: -
if (isLogin == TRUE) {
rootController = [[SettingsViewController alloc] init];
tabTitle = @"Settings";
navTitle = @"Settings";
tabImage = [UIImage imageNamed:@"icon1.png"];
}
else
{
root =TRUE;
rootController = [[RootViewController alloc] init];
tabTitle = @"Home";
navTitle = @"Login";
tabImage = [UIImage imageNamed:@"icon1.png"];
}
break;
case 1:
rootController = [[AboutUs alloc] init];
tabTitle = @"AboutUs";
navTitle = @"AboutUs";
tabImage = [UIImage imageNamed:@"icon2.png"];
break;
case 2:
rootController = [[ContactUsViewController alloc] init];
tabTitle = @"Contact Us";
navTitle = @"Contact Us";
tabImage = [UIImage imageNamed:@"icon3.png"];
break;
case 3:
rootController = [[MoreViewController alloc] init];
tabTitle = @"More";
navTitle = @"More";
tabImage = [UIImage imageNamed:@"icon4.png"];
break;
rootController.view.hidden = FALSE;
UINavigationController *subController = [[UINavigationController alloc]
initWithRootViewController:rootController];
subController.navigationBar.tintColor = [UIColor colorWithRed:(110.0/255.0) green:(184.0/255.0) blue:(71.0/255.0) alpha:1.0];
subController.navigationBar.topItem.title = navTitle;
subController.title = tabTitle;
subController.navigationItem.hidesBackButton =YES;
subController.tabBarItem.image = tabImage;
NSLog(@"%@",subController);
[controllers addObject:subController];
NSLog(@"%@",controllers);
[subController release];
[rootController release];
结果它显示如下表格: -
但是我想将标签栏(蓝色)的默认检测颜色切换为橙色,并希望标签栏看起来像这样: -
请帮帮我;我怎么能这样做?
答案 0 :(得分:2)
您可以更改标签栏颜色以及苹果批准的许多应用。您可以继承UITabBar并根据需要更改颜色。在您的情况下,您需要子类UITabBarItem。这是一个stackoverflow帖子,看看Custom colors in UITabBar
答案 1 :(得分:0)
如果不允许自定义标签栏,那么Apple会使用他们自己的Game Center应用程序(其设计看起来很不错)打破他们自己的指导方针。
答案 2 :(得分:0)
在AppDelegete.m
中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UITabBar appearance] setSelectedImageTintColor:[UIColor redColor]];
return YES;
}
答案 3 :(得分:0)
您也可以尝试更改标签栏图标而不是更改颜色,
等。
tabbar控制器委托方法中的
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if([tabBarController selectedIndex] == 0)
{
[viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]];
}
}
通过这个你可以改变你的tabbaritem图像。
或者您可以直接在视图控制器init(或ViewWillAppear)方法中使用,例如
[viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]];
答案 4 :(得分:-1)
您无法更改标签栏的默认颜色。这是我们在iOS应用程序中必须遵循的用户界面指南之一。
当无法更改标签栏的默认颜色时,我对此问题发表了评论。现在我们可以更改标签栏的默认颜色。